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

 
 
> работа с EEPROM данных (PIC16F631), что-то с флагами не то ?
rx3apf
сообщение Jul 16 2009, 19:42
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Я, в общем-то, работаю с PIC16 изредка и всегда, когда работал с EEPROM данных на запись, контролировал завершение по EEIF, как описано в даташите. А тут, для простоты и компактности, решил сделать поллингом бита WR в EECON1. И - зацикливаюсь на его опросе, как он встал в "1", так и остался (запись произошла, потом проверил). Вроде такого быть не должно, он должен по окончанию записи обнуляться ? Кто что подскажет ? Переделал пока на EEIF, но все ж странно...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
FiNik
сообщение Jul 16 2009, 20:11
Сообщение #2





Группа: Участник
Сообщений: 6
Регистрация: 17-01-09
Из: Н.Новгорлд
Пользователь №: 43 500



Проверьте БАНК (EECON1,WR находится в BANK1).
Должно работать, всегда проверяю окончание записи по этому биту (правда, на 16F631 еще не приходилось).
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jul 16 2009, 20:21
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(FiNik @ Jul 17 2009, 00:11) *
Проверьте БАНК (EECON1,WR находится в BANK1).
Должно работать, всегда проверяю окончание записи по этому биту (правда, на 16F631 еще не приходилось).

Банк тот, я его не менял, поскольку только что выставлял WR в "1". У F631 это банк 3, но непринципиально... Усомнившись, не подгаживает ли вдруг обработчик прерываний, попробовал с сброшенным GIE - то же самое. Странно это...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jul 17 2009, 14:20
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 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 хороши до того момента, пока можно обходиться одним-двумя банками (да и то с осторожностью), а так спятить можно...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


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

 


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


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