Свежие обсуждения
Микроконтроллеры

Калибровочная константа

1 2 4

Сначала читаете свежекупленную микросхему в программаторе. Сохраняете где-либо (хоть на бумажке) 16-ричное число из ячейки 3FFh. ICprog прочтёт, куда он денется. При каждом перепрограммировании принудительно заносите это число обратно. Т.е.: Вставляете МК в программатор. Открываете hex-файл. Затем запомненное число вбиваете в ячейку по адресу 3FFh в окошке программатора. Затем давите кнопу "прошить". А в тексте программы заранее предусматриваете требуемые 4 строчки, чтоб при старте перенести данные в OSCCAL.
Как в программаторе предусмотреть сохранение и перезапись этой константы автоматически - этого я не знаю.

 

Подкину вам проблему .
В протеусе и "вживую" если калибровочной костанты нет и вы считываете константу то пик уходит в даун.
IC-prog при прошивке спрашивает , перезаписать константу или нет.
Так что с реальным проектом все в порядке.
А вот в протеусе засада. Это еще осложняеться при создание проекта в HI-TECH , она автоматом прописывает макрос считывания калибровки .
Нужно принудительно прописать
по адресу 0x3ff , retlw хх
но вот как это сделать?

 

Как конкретно в Hi-TECH не знаю, но обычно есть возможность расположить инструкцию по строго указанному адресу. В асме это директива ORG. Вот и указать в программе на время отладки "расположить инструкцию retlw xx по адресу 0x3FF".
Как возможный вариант - ассемблерная вставка?

 

picmaniac: Как конкретно в Hi-TECH не знаю, но обычно есть возможность расположить инструкцию по строго указанному адресу. В асме это директива ORG. Вот и указать в программе на время отладки "расположить инструкцию retlw xx по адресу 0x3FF".
Как возможный вариант - ассемблерная вставка?

Ну неужели ты думаешь что, я настолько глуп...
Обижаете.
Не прокатывает это...
ORG в хай теч не работает
вставка располагаеться именно по тем адресам где закончился предыдущий сишный код.

 

Ситуацию можно попробовать разрулить следующим образом:
1. Компилируем сишную программу в ассемблерный код (как это делается в Hi-TECH, сказать не могу, в нормальных компилерах это обычно ключ -s)
2. Ручками вставляем org в полученный файл (обычно он с расширением *.s) в нужное место
3. Теперь компилируем это файл этим же компилером до выполнимого кода.
Как правило, все сишные компилеры работают по одной и той же схеме С->ассемблер->объектный файл->выполнимый файл. Можно надеяться, что Hi-TECH не белая ворона.

 

dosikus: Ну неужели ты думаешь что, я настолько глуп...
Обижаете.

Не думаю. Каков вопрос - таков и ответ.

 

chav1961: Ситуацию можно попробовать разрулить следующим образом:

Тогда проще прошивку в ic-prog отредактировать.
IMHO это не выход....

 

picmaniac: Как конкретно в Hi-TECH не знаю, но обычно есть возможность расположить инструкцию по строго указанному адресу. В асме это директива ORG. Вот и указать в программе на время отладки "расположить инструкцию retlw xx по адресу 0x3FF".
Как возможный вариант - ассемблерная вставка?

Да и чего я теряюсь , ну ка изобрази это в CCS .
Именно асм вставку.

0x3ff retlw 0хb0

Только не на словах , а скомпилируй.

И не надо как выше советовали в асм исходнике извращаться.

Скоро вы сами столкнетесь с этим.
Делать два исходника для реального и для отладки то же не выход...

 

Пока нашел выход для CCS:

#rom 0x3ff = {0x34b0}

 

dosikus: ну ка изобрази
Не ну-кай, не запряг ещё. Разобрался - вот и отлично. Какие предъявы?