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

 
 
> eeprom avr, запись и чтение
RicLab
сообщение Feb 11 2011, 13:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 24-11-08
Пользователь №: 41 901



Добрый день.
в проекте необходимо записать переменную изменяемую пользователем в eeprom если она не изменяется в течении ~1сек.

Записываю так:
Код
eeprom int Datamemory=40;  // обьявляю переменную

void xxx (void)                      // функция вызываемая прерыванием таймера

if(oldvariable==newvariable){
x++;
                                          }
else                              {
x=0;
                                    };
if (x==3921){
Datamemory=variable;
x=0;
};

void main()void

variable2=Datamemory;


запись происходит не всегда и если записывается то мусор.
Как правильно организовать запись в eeprom?

Сообщение отредактировал RicLab - Feb 11 2011, 13:54
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RicLab
сообщение Feb 12 2011, 04:42
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 24-11-08
Пользователь №: 41 901



сделал так

Код
eeprom int Datamemory=40;             // обьявляем переменные
int readydata,var;

interrupt [TIM0_OVF] void timer0_ovf_isr(void){

readydata++;                                  //  в прерывании инкрементируем
};

while (1)
      {
    
      if (readydata==392) {                 // каждые ~ 100мсек
      readydata=0;                            
      if (Datamemory!=var) {       // если значение в eeprom не равно текущему значению
      Datamemory=var;               // записываем текущее значение в eeprom  
                                              };                      
                                     };
                };
}


временной интервал проверки уменьшил до 100мсек так как при оном равном 1 сек при выключении питания записывался мусор(при сбросе все нормально biggrin.gif ).
понимаю что так записывать наверно неправильно, так что жду критики. smile3046.gif

Сообщение отредактировал RicLab - Feb 12 2011, 04:43
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 01:26
Рейтинг@Mail.ru


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