17:09 Калибровочная константа контроллеров 629,675,630,676 | |
По просьбе пользователя CRASHER была написана прошивка светодиодного тахометра для PIC12F675. В ходе экспериментов было выявлено, что контроллер неправильно определял входную частоту.
Оказывается компилятор, которым я пользуюсь, при формировании асм кода не добавлял функцию автоматического считывания калибровочной константы, следовательно внутренний генератор контроллера работал с константой по умолчанию равной 128. Поэтому все контроллеры (у меня их около 40 штук) работали на частотах от 4,5 до 5,5 МГц, что сильно влияло на корректное выполнение программ критичных ко времени (распознавание посылок пультов, формирование точных временных интервалов и т.д.). Надо внимательнее читать документацию. Решение данной проблемы было найдено на просторах интернета. Необходимо добавить следующий код в самом начале программы: SET_OSCCAL ; для Proton+ или на асме ASM
CALL 0x3FF ; Считываем калибровочную константу (последняя ячейка памяти программ) BSF STATUS,5 ; Переходим в Bank 1 MOVWF OSCCAL ; Загружаем константу в генератор OSCCAL ENDASM Восстановление константы. Реально работает - восстановил константы нескольких МК.
P.S. Все прошивки PIC12F629, PIC12F675, PIC16F630, PIC16F676 на данном сайте были исправлены и перезалиты заново 27.06.2015 с теми же номерами версий. Это радиодатчик температуры, радиозвонок, IR/RF управление нагрузками. | |
Просмотров: 7342 | |