|
||||
Правильная конфигурация микроконтроллера при программировании позволяет избежать непрятного момента, когда схема собрана, включена и почему-то не работает. При прошивке контроллера очень удобно использовать программу IC-Prog. В программе сразу отображаются все биты конфигурации, которые легко изменить при необходимости. Когда первая из схем часов была мною собрана и включена, она категорически отказывалась нормально работать. Индикаторы непонятно мерцали, но совершенно не хотели показывать то, что от них ожидалось. После многократной проверки монтажа, напряжения в разных точках платы и измерения тока, совершенно случайно решил попробовать изменить один из битов в слове конфигурации, и чудо свершилось...ЗАРАБОТАЛО! Причём заработало устойчиво и так как надо. В соответствии с таблицей 14 на странице 90 даташита PIC16F62X при частоте кварцевого резонатора частотой 4 МГц нужно выставить бит XT_OSC. Вот здесь и была "зарыта собака". Всё наладилось только после того, как этот бит был изменён на HS_OSC. Именно из-за этой неточности схема отказывалась работать. Применительно к своим программам часов теперь я использую код, который приведён ниже и прокомментирован. list p=16f628a ;задали тип контроллера include <p16F628a.inc> ;подключили файл опций ; Конфигурация __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF _CP_OFF означает, что защита кода выключена, при отладке устройства в ней нужды нет _WDT_OFF сторожевой таймер выключен. Сторожевой таймер при срабатывании начинает программу сначала, и если мы его включим и умудримся в процессе работы часов получить такое зависание программы, при котором он сработает, то показания часов будут потеряны, придётся выставлять их снова. Помочь он нам не может, поэтому отключаем его и даём себе наказ – никаких зависаний. _PWRTE_ON таймер задержки включения контроллера. Проверяет напряжение питания при включении. При достижении номинального напряжения выжидает 72 миллисекунды затем запускает программу контроллера на выполнение. Полезное устройство, включаем. _HS_OSC выбор типа резонатора. Здесь у меня сначала было указано _XT_OSC в соответствии с таблицей 14 на странице 90 даташита PIC16F62X. Когда микроконтроллер был прошит, вставлен в плату, а часы включены, индикатор непонятно мерцал. При прикосновении рукой к резонатору и вовсе всё гасло. Поставил в конфигурации _HS_OSC, и часы чудесно заработали. Сделав для себя вывод, что не всё то правда, что написано, ставлю _HS_OSC. _LVP_OFF включение/выключение режима низковольтного программирования контроллера. При включении бессовестно отнимает у нас порт RB4. Отключаем. _BODEN_OFF сброс по снижению напряжения питания. Пользы от него для часов никакой нет. Отключаем. _MCLRE_OFF выбор режима работы порта RA5. Порт RA5 используем в качестве обычного порта, чего отключением режима MCLR успешно добиваемся. |
||||