Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

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

Пн май 30, 2022 11:59:43

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

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

Пн май 30, 2022 14:35:24

Буду признателен толковому совету.

Должен вас огорчить, но код очень плохо читается.
Единственный совет - включить дебаг и посмотреть на железе в 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

Если этого не сделать, то переменные наблюдать в окне Watches будет невозможно, а в окне File Registers крайне неудобно из-за отсутствия имен.

Спасибо, буду пробовать.
Надеялся, что в Протеусе можно будет пошагово пройтись по программке, но классическая замена hex на исполняемый файл cof результата не дала, окно исходника пустое. :dont_know:

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

Пн май 30, 2022 16:54:23

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

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

Пн май 30, 2022 17:22:44

Но вот в Протеусе же можно запустить пошаговую отладку, создав проект с этим микроконтроллером и выбрав вот так:

Спасибо, вот про такой вариант решения задачи я не знал :write:

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

Пн май 30, 2022 17:37:10

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