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

 
 
> не пишится в EEPROM данные, Реально не пишится в EEPROM данные
Sholkin
сообщение Apr 2 2007, 15:43
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 41
Регистрация: 2-04-07
Пользователь №: 26 711



Здравствуйте. Первый раз на вашем форуме. На том где я обычно страшиваю не кто не ответил .Посоветовали к вам. Проблема вот какая.
(тему по ентому можно посмотреть сдесь http://www.fulcrum.ru/cgi-bin/bbs/mess_sel...564&page=1)
В процессоре не записываються данные в EEPROM. Написал программу в AVR 4.12 всё нормально данные пишуться прогу зашил в проц мега 8L на этом блоке где идет запись в EEPROM он застопориваеться и даль всё.
Вот мой кусок проги записи в эмуляторе всё тип топ
;запись расхода электроэнергии в EEPROM
clr r22 ;обнуление переменной условия записи в EEPROM
ldi r20,0
OUT $1E,R20
lds r21,$60
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP0: SBIC $1C,1
RJMP WEP0

ldi r20,1
OUT $1E,R20
lds r21,$61
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP1: SBIC $1C,1
RJMP WEP1

ldi r20,2
OUT $1E,R20
lds r21,$62
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP2: SBIC $1C,1
RJMP WEP2

ldi r20,3
OUT $1E,R20
lds r21,$63
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP3: SBIC $1C,1
RJMP WEP3

ldi r20,4
OUT $1E,R20
lds r21,$64
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP4: SBIC $1C,1
RJMP WEP4

ldi r20,5
OUT $1E,R20
lds r21,$65
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP5:SBIC $1C,1
RJMP WEP5

ldi r20,6
OUT $1E,R20
MOV r21,r15
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
WEP6:SBIC $1C,1
RJMP WEP6
;обнуление памяти о расходе електроэнергии
ldi r16,0b00000000 ;временно заносим данные о электроэнергии
sts $60,r16
sts $61,r16
sts $62,r16
sts $63,r16
sts $64,r16
sts $65,r16
clr r15
; чтение из EEPROM данных расхода электроэнергии в десятичной форме
; и запись их в память
ldi R20,0 ;чтение 1 цифры
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP0:SBIC $1C,0
RJMP REP0
IN R21,$1D
sts $60,r21

ldi R20,1 ;чтение 2 цифры
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP1:SBIC $1C,0
RJMP REP1
IN R21,$1D
sts $61,r21

ldi R20,2 ;чтение 3 цифры
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP2:SBIC $1C,0
RJMP REP2
IN R21,$1D
sts $62,r21

ldi R20,3 ;чтение 4 цифры
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP3:SBIC $1C,0
RJMP REP3
IN R21,$1D
sts $63,r21

ldi R20,4 ;чтение 5 цифры
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP4:SBIC $1C,0
RJMP REP4
IN R21,$1D
sts $64,r21

ldi R20,5 ;чтение 6 цифры
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP5:SBIC $1C,0
RJMP REP5
IN R21,$1D
sts $65,r21

ldi R20,6 ;чтение номера счётчика из EEPROM
OUT $1E,R20
LDI R20,1
OUT $1C,R20
REP6:SBIC $1C,0
RJMP REP6
IN R15,$1D ;запись номера счётчика в регистор

; конец чтение из EEPROM данных расхода электроэнергии в десятичной форме
Потом сделал как доке сначала команду WEP0: SBIC $1C,1
RJMP WEP0
потом OUT $1E,R20
lds r21,$60
OUT $1D,R21
LDI R21,4
sts $3C,R21
LDI R21,2
sts $3C,R21
думал в этом деле нет всё осталось по прежнему. чегодальше делать где рыть не знаю
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KamikFROMrussia
сообщение May 6 2007, 21:07
Сообщение #2





Группа: Новичок
Сообщений: 1
Регистрация: 6-05-07
Пользователь №: 27 552



Здорова всем!

Проблема с EEPROM:
Программирую для ATMEGA128 на С в AVRstudio 4.

#include <avr/io.h>

#define __nop __asm__ __volatile__ ("nop":smile.gif;

void eddyEEPROMwrite ( uint8_t ADDR, uint8_t DAT )
{
while(EECR & (1<<EEWE)) ;

EEAR = ADDR;//location
EEDR = DAT;//byte
/* Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EEWE);
__nop;
__nop;

}

uint8_t eddyEEPROMread ( uint8_t ADDR )
{

uint8_t getDAT;
while(EECR & 0x02);

EEAR = ADDR;//location;
EECR |= (1<<EERE);
while ( EECR & 0x01 );
getDAT=EEDR;
return getDAT;
}

int main(void)
{
uint8_t ad, da, res;
ad=0;
da=1;
eddyEEPROMwrite( ad, da );
res=eddyEEPROMread( ad );
while(1);
}

Кто-ниб может подсказать почему условие

while(EECR & 0x02);

не выполняется при том, что бит EEWE(0x02) в регистре EECR в нуле. Это первое.

Второй вопрос:

Кто-нибудь использовал стандартную библиотеку eeprom.h?
Зачем там нужен дефайн:
#define EEMEM __attribute__((section(".eeprom")))
и как его правильно использовать?

Приведите, пожалуйста, проверенные примеры на С записи данных в ЕЕПРОМ для атмеге128 или других схожих МК.

Заранее всем спасибо!
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 6 2007, 21:25
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(KamikFROMrussia @ May 7 2007, 01:07) *
int main(void)
{
uint8_t ad, da, res;
ad=0;
da=1;
eddyEEPROMwrite( ad, da );
res=eddyEEPROMread( ad );
while(1);
}

Во-первых, никогда не пишите в ячейку 0 EEPROM на AVR !!!
Код
Чтение:
      while(EECR & (1<<EEWE));  // запись закончена ?
      EEAR=EEAddr;                    // Адрес
      EECR |= (1<<EERE);          // читаем
      tmp=EEDR;                        // данные

Запись:
      while(EECR & (1<<EEWE));  // запись закончена ?
      EEAR=EEAddr;                    // Адрес
      EEDR=tmp;                        // данные
      EECR |= (1<<EEMWE);       // пишем
      EECR |= (1<<EEWE);
Go to the top of the page
 
+Quote Post
defunct
сообщение May 7 2007, 11:24
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(singlskv @ May 6 2007, 23:25) *
Во-первых, никогда не пишите в ячейку 0 EEPROM на AVR !!!

Что за предрассудки?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sholkin   не пишится в EEPROM данные   Apr 2 2007, 15:43
- - Dima_Ag   ПОсмотрите в Datasheet на MEGA8 , на стр.20 и 21 п...   Apr 2 2007, 15:53
- - Kuzmi4   2 Sholkin - вот, собсно всё работает и на 8-й и на...   Apr 3 2007, 08:29
- - Dopler   Не юбижайтесь, но довольно трудно разбираться в чу...   Apr 3 2007, 10:22
- - sadat   Приведу и свой код: A = R16 (привык называть регис...   Apr 3 2007, 12:32
- - Sholkin   Здравствуйте вроде в моём коде все коментарии про...   Apr 4 2007, 10:30
|- - bodja74   Цитата(Sholkin @ Apr 4 2007, 10:30) Чужое...   Apr 4 2007, 11:18
- - Sholkin   bodja74 вы немного не правы . Симуляторе работает ...   Apr 5 2007, 06:35
|- - mempfis_   Привет вот ещё мой код который стопроцентно рабочи...   Apr 7 2007, 16:34
- - defunct   Sholkin Цитата... OUT $1E,R20 lds r21,...   Apr 7 2007, 17:10
- - Sholkin   Здравствуйте В пятницу поседел над програмкой вот ...   Apr 10 2007, 05:36
- - bodja74   1 Есть такая волшебная строчка .include "C:...   Apr 10 2007, 18:52
|- - defunct   Цитата(bodja74 @ Apr 10 2007, 17:52) 3 Ес...   Apr 11 2007, 00:20
||- - IgorKossak   Цитата(defunct @ Apr 11 2007, 00:20) ... ...   Apr 11 2007, 12:52
|- - Wild007   Полностью согласен с: Цитата(bodja74 @ Apr 10...   Apr 20 2007, 15:41
- - Sholkin   Здравствуйте. Зделал всё как мне сказали выше бора...   Apr 17 2007, 05:37
- - Sholkin   Парни что реально не кто не сможет помочь ? Обидно   Apr 20 2007, 15:26
- - Sholkin   А если так уже программа написана вся . Ведь это т...   Apr 27 2007, 14:46
- - SasaVitebsk   Я вот смотрю, что здесь все по своей культурности ...   Apr 27 2007, 20:58
- - Sholkin   Спасибо за оптвет Александр Уже начал оформлять и ...   May 2 2007, 10:17
|- - ae_   Цитата(Sholkin @ May 2 2007, 16:17) Спаси...   May 2 2007, 11:29
||- - IgorKossak   Цитата(defunct @ May 7 2007, 14:24) Что з...   May 7 2007, 16:53
|- - aesok   Цитата(KamikFROMrussia @ May 7 2007, 01:0...   May 6 2007, 22:31
- - Sholkin   Здравствуйте. ae_ вы немного не правы тогда у мен...   May 7 2007, 12:35
|- - ae_   Цитата(Sholkin @ May 7 2007, 21:35) Тепер...   May 8 2007, 03:45
- - mdmitry   2KamikFROMrussia В WINAVR есть библиотека для раб...   May 7 2007, 13:37
- - Sholkin   Здравствуйте . Код не могу привести вставляю тут н...   May 10 2007, 06:09
|- - ae_   Цитата(Sholkin @ May 10 2007, 15:09) Здра...   May 10 2007, 07:19
- - Sholkin   Здравствуйте . Сейчас всё наладилось могу предоста...   May 14 2007, 22:45
|- - ae_   Цитата(Sholkin @ May 15 2007, 07:45) ... ...   May 15 2007, 00:15
- - Sholkin   Здраствуйте. То что это мой код я понял . Но почем...   May 15 2007, 23:14
|- - ae_   Цитата(Sholkin @ May 16 2007, 12:14) Здра...   May 15 2007, 23:37
- - Sholkin   Здравствуйте. Вот этого фрагмента не достаточно W...   May 17 2007, 12:59
|- - defunct   Цитата(Sholkin @ May 17 2007, 14:59) Вот ...   May 17 2007, 22:51
- - Sholkin   Привет. Привел все как надо на выходных (часть код...   May 23 2007, 07:26
|- - defunct   Цитата(Sholkin @ May 23 2007, 09:26) Чего...   May 23 2007, 14:47
- - IgorKossak   Ну раз уж такое здесь началось, defunct получает п...   May 23 2007, 16:03


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

 


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


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