|
работа с EEPROM данных (PIC16F631), что-то с флагами не то ? |
|
|
|
Jul 16 2009, 19:42
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Я, в общем-то, работаю с PIC16 изредка и всегда, когда работал с EEPROM данных на запись, контролировал завершение по EEIF, как описано в даташите. А тут, для простоты и компактности, решил сделать поллингом бита WR в EECON1. И - зацикливаюсь на его опросе, как он встал в "1", так и остался (запись произошла, потом проверил). Вроде такого быть не должно, он должен по окончанию записи обнуляться ? Кто что подскажет ? Переделал пока на EEIF, но все ж странно...
|
|
|
|
|
 |
Ответов
|
Jul 16 2009, 20:11
|
Группа: Участник
Сообщений: 6
Регистрация: 17-01-09
Из: Н.Новгорлд
Пользователь №: 43 500

|
Проверьте БАНК (EECON1,WR находится в BANK1). Должно работать, всегда проверяю окончание записи по этому биту (правда, на 16F631 еще не приходилось).
|
|
|
|
|
Jul 16 2009, 20:21
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(FiNik @ Jul 17 2009, 00:11)  Проверьте БАНК (EECON1,WR находится в BANK1). Должно работать, всегда проверяю окончание записи по этому биту (правда, на 16F631 еще не приходилось). Банк тот, я его не менял, поскольку только что выставлял WR в "1". У F631 это банк 3, но непринципиально... Усомнившись, не подгаживает ли вдруг обработчик прерываний, попробовал с сброшенным GIE - то же самое. Странно это...
|
|
|
|
|
Jul 17 2009, 14:20
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(rx3apf @ Jul 17 2009, 00:21)  Банк тот, я его не менял, поскольку только что выставлял WR в "1". У F631 это банк 3, но непринципиально... Усомнившись, не подгаживает ли вдруг обработчик прерываний, попробовал с сброшенным GIE - то же самое. Странно это... Короче, обманул я - подгаживал все ж обработчик прерываний (очевидно, при проверке что-то не так закомментировал). А причина - проста до безобразия: я от большого ума разместил области сохранения w и status по младшим адресам RAM, а сам полез в старшие банки. Сработало прерывание и по выходу восстановило из несуществующего адреса, выставив банк 0. Ну а дальше WR можно поллить хоть до посинения. Все ж PIC16 хороши до того момента, пока можно обходиться одним-двумя банками (да и то с осторожностью), а так спятить можно...
|
|
|
|
Сообщений в этой теме
rx3apf работа с EEPROM данных (PIC16F631) Jul 16 2009, 19:42 FiNik Сразу после установки WR в 1 я запрещаю новую запи... Jul 16 2009, 20:50 rx3apf Цитата(FiNik @ Jul 17 2009, 00:50) Сразу ... Jul 16 2009, 21:09 FiNik Если уж быть совсем точным, WR я всегда проверяю п... Jul 16 2009, 21:32 @Ark В общем, есть мнение, что это глюк микрочипа. При ... Jul 16 2009, 22:44 FiNik Цитата(@Ark @ Jul 17 2009, 02:44) В общем... Jul 17 2009, 03:02 Eddy71 ЦитатаAfter a write sequence has been initiated, c... Jul 17 2009, 05:01 PIC_Embedder Цитата(Eddy71 @ Jul 17 2009, 08:01) На дн... Jul 17 2009, 16:43 @Ark ЦитатаА что по этому поводу "говорит" MP... Jul 17 2009, 09:14 @Ark ЦитатаПосле перехода на Си забыл о подобных пробле... Jul 17 2009, 20:41 PIC_Embedder Цитата(@Ark @ Jul 17 2009, 23:41) Аппарат... Jul 17 2009, 21:26 HHIMERA Цитата(@Ark @ Jul 17 2009, 01:44) В общем... Jul 17 2009, 23:12 @Ark С общим мнением, свое я не путаю, высказываю тольк... Jul 26 2009, 20:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|