Фокусы с Pic18F8722
|
|
xvovanx |
Дата: Ср, 18.03.2015, 22:52 | Сообщение # 1 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Добрый вечер, форумчане. 18 серия меня не перестает удивлять и опять у меня стоп-кран. Нужна помощь по программе. Суть в том, что при командах записи/чтения в Eeprom программа в симуляторе и в железе наглухо зависает-зацикливается в обработчике прерываний. Если прерывания убрать, то программа идет, но при выводе на экран вылезают еще каких-то три знака 000. Все очень сумбурно и непонятно наверно описал. Возможно понятней будет с конца - в цикле печатаем значения - всё ОК. В цикл добавляем запись/чтение - при печати вылазит три "левых" знака. Добавляем прерывания (даже пустые) - зависон. Вот это и шляпа, с 16 серией таких фокусов не встречал. Ума не приложу, не курю, но даташит пришлось скурить, жонглирование регистрами по памяти Еепром - не помогло . Выручайте, в трех соснах заплутал. Без команд записи/чтения вся огромная прога в 64кВ отлично работает, решил добавить запись в память на случай пропажи электро - и все встало. В приложении кусок кода для демонстрации.
Сообщение отредактировал
xvovanx - Чт, 19.03.2015, 10:11
|
|
|
|
dimvad |
Дата: Чт, 19.03.2015, 01:53 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
80
Замечания:
±
На сайте с 20.07.2012
Статус:
Offline
|
Ну, вообще-то, мне кажется, надо запретить прерывание по окончании записи в ЕЕПРОМ , а оно у Вас разрешено, либо в обработчике прерываний, уж если Вы его разрешили, сбрасывать соответствующий флаг (PIR2.4)
|
|
|
|
xvovanx |
Дата: Чт, 19.03.2015, 10:05 | Сообщение # 3 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата dimvad ( ) мне кажется, надо запретить прерывание по окончании записи в ЕЕПРОМ , а оно у Вас разрешено Если чесно, то первый раз о таком слышу, что для записи в память надо отключать прерывания (16 серия работает без таких манипуляций). А как быть, если сигнал от внешнего устройства прерывания прийдет именно в тот момент, когда у нас отключен контроль прерываний и идет запись? Пропускаем важную посылку извне. Нет, тут явно что-то другое
|
|
|
|
dimvad |
Дата: Чт, 19.03.2015, 11:40 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
80
Замечания:
±
На сайте с 20.07.2012
Статус:
Offline
|
Вы сами разрешили прерывание (PIE2.4 = 1) по окончании записи в ЕЕПРОМ зачем- то, а в обработчике прерываний флаг не сбрасываете, вот программа и зависает. Если Вы его запретите, то все заработает.
|
|
|
|
ivan_fd |
Дата: Чт, 19.03.2015, 12:10 | Сообщение # 5 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Цитата xvovanx ( ) Если чесно, то первый раз о таком слышу, что для записи в память надо отключать прерывания Вы наверно не внимательно читали даташит.
|
|
|
|
xvovanx |
Дата: Чт, 19.03.2015, 13:01 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
ivan_fd, dimvad, Спасибо надоумили! Не учел, что бит регистра PIE2.4 (EEIE) - прерывание по записи в память, оказывается что и такие прерывания бывают (не знал). Вам с меня как и полагается формулка
формула = (8//3)/2 репутация = репутация + формула
P.S. ivan_fd, ссылочкой на отечественные сигары (даташит) не поделитесь, а то от английских сильно першит в горле . А в тех даташитах, что у меня есть на русском (16 семейство), половина хитрых регистров отсутствует.
Сообщение отредактировал
xvovanx - Чт, 19.03.2015, 14:11
|
|
|
|
ivan_fd |
Дата: Чт, 19.03.2015, 14:03 | Сообщение # 7 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Насколько я знаю, есть только эти переводы на русский. PIC12C5XX PIC16F62X PIC16F87X Справочник по всем микроконтроллерам PIC16 PIC12F6XX PIC18Fxx2
Находятся здесь.
|
|
|
|
xvovanx |
Дата: Чт, 19.03.2015, 14:20 | Сообщение # 8 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
332
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата ivan_fd ( ) ...есть только эти переводы на русский. ...PIC18Fxx2 Находятся здесь.
То, что нужно! А то от английских сигар "взатяг" голова уже кружится , чуть слово не так перевел - и на те - двойка
Сообщение отредактировал
xvovanx - Чт, 19.03.2015, 14:24
|
|
|
|