Страница 1 из 1

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

Добавлено: Пн май 30, 2022 11:59:43
wws63
Делаю формирователь сигнала точного времени (00 минут 00 секунд) по сигналам от GPS.
Программка для PIC12F1822 написана на АСМе в MPLABX. Для симуляции сделал проект в Proteus 8.11 в связке с программкой Docklight. В итоге пока еще "сырая" программка отрабатывает в симуляторе нормально, на выходе два сигнала, каждую секунду сигнал GPS и сигнал точного времени.
В реале же не все так радужно, как в Протеусе. Если секундный импульс есть, то на выходе сигнала точного времени постоянно торчит единичка. И даже когда настраиваю линию порта на выход только при совпадении с нулевыми значениями, на выходе светодиод включен постоянно.
С этими камешками (12F1xxx) работаю впервые, может чего напутал при инициализации МК?
Буду признателен толковому совету.

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

Добавлено: Пн май 30, 2022 14:35:24
КРАМ
[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 крайне неудобно из-за отсутствия имен.

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

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

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

Добавлено: Пн май 30, 2022 16:54:23
НовыйДень
Эх, лет 15 назад я еще умел писать на ассемблере для PIC :))) Щас уже разучился.
Но вот в Протеусе же можно запустить пошаговую отладку, создав проект с этим микроконтроллером и выбрав вот так:
Изображение
затем вставить текст вашей проги, скомпилировать его и запустить пошаговую отладку:
Изображение

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

Добавлено: Пн май 30, 2022 17:22:44
wws63
[uquote="НовыйДень",url="/forum/viewtopic.php?p=4238924#p4238924"]Но вот в Протеусе же можно запустить пошаговую отладку, создав проект с этим микроконтроллером и выбрав вот так:[/uquote]
Спасибо, вот про такой вариант решения задачи я не знал :write:

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

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