реклама на сайте
подробности

 
 
> Две проблемы с PIC18F452, Не запускается даже кварц.
torik
сообщение Jun 23 2009, 07:07
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Давно уже не работал с пиками, многое позабыл...

Во-первых:
В режиме Debug, после програмирования выдает ошибку:
Цитата
ICD0083: Debug: Unable to enter debug mode. Please double click this message for more information.


В хелпе ни слова о том как с ней бороться. Какие причины могут приводить к этому?

Во-вторых:
Установил компилятор HI-TECH PICC-18 PRO COMPILER (Microchip PIC micro) V9.61PL1.
У меня такое подозрение, что что-то либо с ним не так (а это маловероятно, т.к. люди пользуются), либо я что-то делаю не так. Программа, скомпилированная этим компилятором, не работает. Не запускается даже генератор. При этом на старом компиляторе все работает!

Полагаю, первая и вторая проблемы взаимосвязаны. Прошу спецов помочь решить эти вопросы...


Забыл совсем: отладчик - шайба ICD2, програмируется/читается нормально. Только не работает... smile.gif


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
torik
сообщение Jun 23 2009, 12:31
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Я, похоже, запарю сегодня окончательно всех. Ну хотя бы не буду плодить дополнительную тему.

Смотрим действия компилятора по команде:
Код
        LATB <<= 1;

В дизассемблере получаем:
Код
BCF 0xfd8, 0, ACCESS
RLCF 0xf8a, F, ACCESS


Мне бы надо сделать так, чтобы компилятор не делал сброс бита C. На СИ, как я понимаю, такое невозможно. Поправьте, если ошибаюсь.

Выход, вроде как очевидный - сделать ассемблерную вставку:
Код
        asm("rlcf _LATB,f");

Результат в дизассемблере плачевный:
Код
RLCF 0x8a, F, BANKED

А на:
asm("rlcf _LATB,f,ACCESS");

компилятор ругается. Ээээ.... В чем дело?

Соответственно получаем нерабочий код, надо перед ним делать
Код
BSR |= 0x0f;
, вручну банк переключать....


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
xemul
сообщение Jun 23 2009, 13:27
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(torik @ Jun 23 2009, 16:31) *
Мне бы надо сделать так, чтобы компилятор не делал сброс бита C. На СИ, как я понимаю, такое невозможно. Поправьте, если ошибаюсь.
А на:
Код
asm("rlcf _LATB,f,ACCESS");

компилятор ругается. Ээээ.... В чем дело?

Угу, еще одна заморока, учитывая, что на inline компилятор чихает. Невозможно, приходилось плодить различные костыли.
На явное
Код
asm("rlcf _LATB,f,0");

компилятор тоже огорчается?
Это Вы единичку гоняете по LATB?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 07:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016