pic 12c508 замена на аналоги

Voldemaar
MrPayne:

Есть код под pic12c508:
----- skipped ----
Ну так вот…как я понимаю для того чтобы записать этот код на pic 12c508a необходимо исправить строчу incl*ude? или я не правильно понимаю?

В этом инклюде стоит ссылка на файл с перечнем регистров, адресов и прочей требухи, относящейся к данному контороллеру. У 508(А) и 509(А) они одинаковы, кроме размера самого кода, который можно записать в контроллер. Поэтому, можно ничего не менять. Кроме того, в МРЛАБе вообще нет файлов *.inc для этих контроллеров с буковками А, только P12F508.INC и P12F509.INC

MrPayne:

просто я так делал…и запорол уже несколько контроллеров=(. Можно ли ли вместо pic12c508 использовать аналоги на флеш памяти(12f629,12f675)…и много ли при этом надо будет переделывать код?

Вместо 508 можно использовать только 509. Для 629, 675 надо переделывать т.н. “шапку” программы, т.к. у них “больше регистров” и их надо как-то “инициализировать”. Сам код не меняется. Надо на микрочипе взять руссий даташит на них и посмотреть, в чём разница.

MrPayne:

Да и еще вопросик может ли picprog(мне его одолжили, так как больше ничего нет) прошивать 12f629 и 12f675? Ато как я понял после прочтения форума поддержка picprog прекратилась и он не поддерживает новые типы контроллеров…
Заранее примного благодарен.

Думаю, прошьет, хотя в описании на него эти м/к почему-то не фигурируют. Я шью программой IC-Prog. И только 629, 675, т.к., во-первых, их можно стирать (что немаловажно для отладки программ) и, во-вторых, они дешевле 508-509 при большем функционале.
P.S. И исходники какие-то странные…
org 01FF ;вектор сброса
b begin
… что они хотели этим сказать?

16 days later
MrPayne

Еще раз залил эту же прошивку в контроллер. снова вылезла ошибка:
Ошибка по адресу 00001FF: записано 0800 вместо 0А00
затем друг за другом выскочили:
ошибка верификации(5.5в)
ошибка верификации(3.0в)

Чтобы это все значило…програматор PicProg

Voldemaar
MrPayne:

Еще раз залил эту же прошивку в контроллер. снова вылезла ошибка:
Ошибка по адресу 00001FF: записано 0800 вместо 0А00
затем друг за другом выскочили:
ошибка верификации(5.5в)
ошибка верификации(3.0в)
Чтобы это все значило…програматор PicProg

Ну, а я что пишу:

Voldemaar:

P.S. И исходники какие-то странные…
org 01FF ;вектор сброса
b begin
… что они хотели этим сказать?

По адресу 01FF у 508 находится калибровочная константа. Я бы вообще убрал эти строчки из программы… Или посмотрел в бинарнике, что в 1FF находится. И нормальная прога вообще не будет ничего писать по этому адресу - по крайней мере должна “ругаться” на попытку занести туда что-то не то…
P.S. Еще раз посылаю всех с аналогичными вопросами на тот же Казус - там более специализированная публика…

MrPayne

Эти строчки видимо нужны,так как если их убрать из кода, то hex даже не получается…=( так что думаю проблема не в этом…

Voldemaar
MrPayne:

Эти строчки видимо нужны,так как если их убрать из кода, то hex даже не получается…=( так что думаю проблема не в этом…

  1. Если строчки убрать из кода - всё отлично получается.
  2. Если их оставить - то как раз по адресу 01FF и вылазит 0A00.
    А как я писал:
Voldemaar:

По адресу 01FF у 508 находится калибровочная константа.

Вы знаете, что такое калибровочная константа? Просто тяжело рассуждать о решении дифуров с тем, кто не знает даже таблицу умножения

7 days later
MrPayne
Voldemaar:
  1. Если строчки убрать из кода - всё отлично получается.
  2. Если их оставить - то как раз по адресу 01FF и вылазит 0A00.
    А как я писал:

Вы знаете, что такое калибровочная константа? Просто тяжело рассуждать о решении дифуров с тем, кто не знает даже таблицу умножения

Вы хотите посеовноваться со мной в решении диф.уров? это как раз у меня намного лучше получаетя чем програмирование;-)
Что такое калибровочная констатнта если честно не знаю…но в дебугере если убрать эти 2 строчки, то программа начинает работать совершенно неадекватно