непонятная ошибка PIC12F1822

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Аватара пользователя
wws63
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Вс май 21, 2006 16:07:59
Откуда: Алтай

непонятная ошибка PIC12F1822

Сообщение wws63 »

Делаю формирователь сигнала точного времени (00 минут 00 секунд) по сигналам от GPS.
Программка для PIC12F1822 написана на АСМе в MPLABX. Для симуляции сделал проект в Proteus 8.11 в связке с программкой Docklight. В итоге пока еще "сырая" программка отрабатывает в симуляторе нормально, на выходе два сигнала, каждую секунду сигнал GPS и сигнал точного времени.
В реале же не все так радужно, как в Протеусе. Если секундный импульс есть, то на выходе сигнала точного времени постоянно торчит единичка. И даже когда настраиваю линию порта на выход только при совпадении с нулевыми значениями, на выходе светодиод включен постоянно.
С этими камешками (12F1xxx) работаю впервые, может чего напутал при инициализации МК?
Буду признателен толковому совету.
Вложения
gps_p1822_00.asm
(8.83 КБ) 116 скачиваний
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: непонятная ошибка PIC12F1822

Сообщение КРАМ »

[uquote="wws63",url="/forum/viewtopic.php?p=4238769#p4238769"]Буду признателен толковому совету.[/uquote]
Должен вас огорчить, но код очень плохо читается.
Единственный совет - включить дебаг и посмотреть на железе в MPLABX.
Но для этого нужно использовать штатный метод резервирования оперативной памяти вместо древнего определения переменных как констант имен.
Сиречь, вместо:

Код: Выделить всё

           cblock      0x20  
    uart_byte
    FLAG
    FLAG1
    time_null
           endc   
нужно написать:

Код: Выделить всё

      udata      0x20  
uart_byte:     res 1
FLAG:            res 2
time_null:       res 1
После чего использовать переменную FLAG как 16-битную с младшим байтом FLAG и старшим байтом FLAG+1. А в окне Watches установить размер этой переменной - 2 байта.
Если этого не сделать, то переменные наблюдать в окне Watches будет невозможно, а в окне File Registers крайне неудобно из-за отсутствия имен.
Реклама
Аватара пользователя
wws63
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Вс май 21, 2006 16:07:59
Откуда: Алтай

Re: непонятная ошибка PIC12F1822

Сообщение wws63 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4238856#p4238856"]Если этого не сделать, то переменные наблюдать в окне Watches будет невозможно, а в окне File Registers крайне неудобно из-за отсутствия имен.[/uquote]
Спасибо, буду пробовать.
Надеялся, что в Протеусе можно будет пошагово пройтись по программке, но классическая замена hex на исполняемый файл cof результата не дала, окно исходника пустое. :dont_know:
Аватара пользователя
НовыйДень
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс апр 03, 2022 07:01:29

Re: непонятная ошибка PIC12F1822

Сообщение НовыйДень »

Эх, лет 15 назад я еще умел писать на ассемблере для PIC :))) Щас уже разучился.
Но вот в Протеусе же можно запустить пошаговую отладку, создав проект с этим микроконтроллером и выбрав вот так:
Изображение
затем вставить текст вашей проги, скомпилировать его и запустить пошаговую отладку:
Изображение
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
wws63
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Вс май 21, 2006 16:07:59
Откуда: Алтай

Re: непонятная ошибка PIC12F1822

Сообщение wws63 »

[uquote="НовыйДень",url="/forum/viewtopic.php?p=4238924#p4238924"]Но вот в Протеусе же можно запустить пошаговую отладку, создав проект с этим микроконтроллером и выбрав вот так:[/uquote]
Спасибо, вот про такой вариант решения задачи я не знал :write:
Реклама
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: непонятная ошибка PIC12F1822

Сообщение veso74 »

НовыйДень, спасибо. Для PIC, и на C при помощи CCS попробовал, быстро, легко и точно получилось. Будем использовать :).
Виртуальный blink заморгал за нескольких секунд писания кода :).
Реклама
Ответить

Вернуться в «PIC»