Пользуюсь HI-TECH PICC 8.01PL3. Пишу программу для PIC16F628. Наткнулся на непонятки (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
Беня 29 января 2003 г. 18:31
|
|
|
|
при работе с внутренней EEPROM памятью. Мне нужно было записывать в EEPROM массив информации длиной в несколько десятков байт. Я пользовался макросом компилятора EEPROM_WRITE, который определен в файле pic16f6x.h как
#define EEPROM_WRITE(addr, value) while(WR)continue;EEADR=(addr);EEDATA=(value); \
CARRY=0;if(GIE)CARRY=1;GIE=0; \
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0; \
if(CARRY)GIE=1
Не получалось записать сразу 20 байт. Только когда я переделал все и написал свою функцию, все заработало. Получается, нельзя верить этим макросам ? Доверяй, но проверяй!
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Ответ: Prosto nado podpravit' makros — Sergey (12.04.2003 21:24, 867 байт)
- Ответ: Да, Беня! Знаешь, я тоже пользуюсь своими настройками. Тогда всё работает. — Serg-Ant (30.01.2003 11:01, пустое)
- Глюков пока не заметил, но буду настороже.(+) — abivan (30.01.2003 10:15, 279 байт)
- Ответ: Да. Они проверяют WR в начале. У меня так тоже подглюкивало. Когда стал проверять, как написано в даташите, вконце, все стало ОК. — VAI (30.01.2003 07:44, пустое)
- Ответ: стараюсь вообще не пользоваться встроенными функциями, особенно при работе с массивами. Посмотрел, написал свою и успокоился. — Jedi (29.01.2003 23:34, пустое)
- Ответ: Для pic16f628 тоже пользуюсь своей функцией для записи и чтения EEPROM, уже не помню что там было, но макросы работали плохо. Что ещё хуже каждый раз меняют количество параметров для макроса чтения EEPROM. — Aydar (29.01.2003 21:31, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru