14.08.2020, 10:49
|
|
Вид на жительство
Регистрация: 16.06.2009
Сообщений: 497
Сказал спасибо: 63
Сказали Спасибо 49 раз(а) в 41 сообщении(ях)
|
[QUOTE=DmitriyVDN;1312620]бывает такое, умерла ячейка с константой , можно на прямую в OSCCAL писать, заменив в коде вызов CALL 0x3FF на MOVLW 0x40[/К сожалению с написанием программ я уже наверное опоздал,надо было раньше начинать. И все же спасибо.
Уважаемые участники форума,если кто случайно собирал схему контроллера литиевого аккумулятора на PIC16F676,отзовитесь!!Прошивка PIC именно для нее.Буквально чувствую себя дураком,схема простейшая,а не работает,уже изготовлена печатка,все узлы запаяны,остался только этот.Схема мертвая совершенно,на TL431 0,3 В.Я предполагаю,что проблема в прошивке.Прошу помощи.
Последний раз редактировалось mike-y-k; 15.11.2021 в 12:40.
Причина: 6.6
|
|
|
|
14.08.2020, 13:02
|
|
Частый гость
Регистрация: 18.09.2005
Сообщений: 26
Сказал спасибо: 72
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от jump
|
брехня и беспочвенное обвинение! огласите модель ПЛК и корзины с периферией, а так же топологию управляемой технологической цепочки
|
Основной задачей является создание автономных кусков транспортера, состоящих из 8 участков. Если хотите могу показать, как это работает сейчас. Модель в Протеусе. Правда задержка там 1 сек, но это только чтобы успевать давить на кнопочки.
Сообщение от j-Roger
|
1) Вводим переменную - таймер-счетчик (также в ходу название программный таймер) задачи Stop0; назначение - работа с временными интервалами.
2) Вводим переменную - "состояние участка №0"; назначение - выполнение требуемой ветви кода задачи в зависимости от ситуации.
|
Простите за тупой вопрос, школу я закончил еще в 1972 году, больше ни где не учился. Самообразование не дает таких высоких результатов, а по сему вопрос: Что значит "Вводим переменную", и как это может выглядеть на MPASM-е?
Последний раз редактировалось mike-y-k; 15.11.2021 в 12:41.
Причина: 6.6
|
|
|
|
14.08.2020, 14:38
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Сообщение от ptrots
|
Что значит "Вводим переменную", и как это может выглядеть на MPASM-е?
|
"Ввести переменную", наверное то же, что и "объявить переменную". В ассемблере - это присвоить имя ячейке памяти (ОЗУ) и обращаться к ней в программе, как к переменной - записывать туда числовые значения, инкрементировать и т.п.
Советую все же ознакомиться с примером, который давал j-Roger в посте #13
Вот фрагмент оттуда с объявлением переменных:
Код:
|
;************************************************* ****
; область данных
;************************************************* ****
udata
cblock 0x20 ; банк 0 ОЗУ
; "Программные" таймеры/счетчики
Task1_Counter: 1 ; счетчик системных тиков для задачи 1
Task2_Counter: 1 ; счетчик системных тиков для задачи 2
Task3_Counter: 1 ; счетчик системных тиков для задачи 3
endc |
aleks558, Вам все таки нужно создать свою тему. Ваши вопросы к данной теме не имеют отношения.
Последний раз редактировалось mike-y-k; 15.11.2021 в 12:42.
Причина: 6.6
|
|
|
|
14.08.2020, 14:57
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 556
Сказал спасибо: 216
Сказали Спасибо 222 раз(а) в 145 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от ptrots
|
могу показать, как это работает сейчас.
|
для пром применения , код мертво рожденный. любая импульсная помеха на линии и алгоритм ляжет. первое что делают подавляют дребезг(джитер) контактов кнопок/датчиков/переключателей. примеры кода на Си от tester можно посмотреть тут. тут есть два подхода:
первый, когда подавление джитера кнопки делается на одном счетчике , в этом случае при последовательном нажатии кнопок время джитера всех кнопок сложится
те если 8 кнопок нажимаются с интервалом 10мс и имеют джитер 10мс, то результат нажатия 1ой кнопки появится только через 90мс , 2ой через 80мс и тд. те по окончании джитера от всех кнопок
второй, когда каждая кнопка опрашивается отдельно и на нее заводится свой счетчик джитера. но это приводит к увеличению кода и расхода ОЗУ, но реакция на нажатие/отпускание кнопки появится через 10мс.
оба подхода описаны для интервала опроса кнопок 1мс. какой вариант использовать зависит от требований реакции оборудования.
добрый совет: переходите с ASMа на Си, писать такие алгоритмы на ASMе КМК мазохизм.
|
|
|
|
14.08.2020, 15:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
DmitriyVDN, верно. Я уже давно антидребезг делаю через TMR-ы в прерывание уж больно стабильно работает.
Encoder от без делия через прерывания сделал.
Последний раз редактировалось mike-y-k; 15.11.2021 в 12:43.
Причина: 6.6
|
|
|
|
14.08.2020, 15:42
|
|
Частый гость
Регистрация: 18.09.2005
Сообщений: 26
Сказал спасибо: 72
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сообщение от DmitriyVDN
|
для пром применения , код мертво рожденный. любая импульсная помеха на линии и алгоритм ляжет. первое что делают подавляют дребезг(джитер) контактов кнопок/датчиков/переключателей. примеры кода на Си от tester можно посмотреть тут. тут есть два подхода:
|
Во первых это всего лишь симулятор, в реале никаких кнопок нет. Оптические датчики стоят.
А во вторых, все входы развязаны через оптроны. Так что все работает.
Сообщение от DmitriyVDN
|
добрый совет: переходите с ASMа на Си, писать такие алгоритмы на ASMе КМК мазохизм.
|
Вы думаете освоить язык высокого уровня проще? Я когда то в начале 80-х писал небольшие программы на Бейсике, тогда еще на РОБОТРОНЕ и под ДОСом. Но давным давно все забыл... А заново осваивать СИ - это уже перебор. Могу и не дожить до ожидаемого результата. (Простите за тавтологию)
tsb
Спасибо, буду пробовать.
Последний раз редактировалось mike-y-k; 15.11.2021 в 12:43.
Причина: 6.6
|
|
|
|
14.08.2020, 17:05
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 556
Сказал спасибо: 216
Сказали Спасибо 222 раз(а) в 145 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от ptrots
|
Вы думаете освоить язык высокого уровня проще?
|
если вы пишите на асме , то освоить Си вообще нет проблем.
то шо в асме вы пишите
Код:
|
BCF STATUS, RP0 ;
BCF STATUS, RP1 ; Bank0
CLRF PORTB ;
BSF STATUS, RP0 ; Bank1
MOVLW 0xFF ;
MOVWF TRISB ; Set RB‹7:0› as inputs |
в Си это всего две строчки
Код:
|
PORTB=0;
TRISB=0xFF; // Set RB‹7:0› as inputs |
ваша зубо дробильная процедура задержка Delay05
превратится в функцию
Код:
|
void Delay05 (unsigned long int Reg)
{
while(Reg--) continue;
} |
которая вызывается
Delay05(232022) уж не знаю в каких попугаях вы ее туда заносите....
для работы с МК достаточно прочитать первую часть справочника по Си и на первое время держать его под рукой
Последний раз редактировалось DmitriyVDN; 14.08.2020 в 18:39.
|
|
|
|
14.08.2020, 17:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
А сейчас разработчики устройств фирмы используют ASM для МК?
|
|
|
|
14.08.2020, 17:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.09.2014
Сообщений: 4,418
Сказал спасибо: 395
Сказали Спасибо 2,205 раз(а) в 1,306 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
DmitriyVDN, не надо таких советов с программными задержками. Там весь попандос как раз именно из-за блокирующей задержки.
Сообщение от vavan1983
|
используют ASM для МК?
|
Для мелочи асм самое то. Вон тут в соседних темах была штука - чел на Си прогал ATtiny мелкую, 90% памяти занял, а прога дает лаги по 5 секунд и он не знает, че делать.
Для крупных МК на ARM Cortex писать целиком на асме - это конечно же моветон. Но ассемблерные вставки делать можно. Вон во FreeRTOS для системных критичных процессов как раз такие вставки написаны
|
|
|
|
14.08.2020, 20:28
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 556
Сказал спасибо: 216
Сказали Спасибо 222 раз(а) в 145 сообщении(ях)
|
Re: Помогите с TMR1 на PIC16F873
Сообщение от NewWriter
|
DmitriyVDN, не надо таких советов с программными задержками.
|
"совет" и "пример записи", это разные вещи, понимать нуна...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:17.
|
|