Работа с памятью. Запись в EEPROM.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
king-live
Прорезались зубы
Сообщения: 238
Зарегистрирован: Сб янв 29, 2011 20:26:48

Работа с памятью. Запись в EEPROM.

Сообщение king-live »

Доброго времени суток! Выпускаются множество устройств, охранных сигнализаций. При прошивке контроллера, приходилось в ручную редактировать EEPROM (записовал только "0"). Если не редактировать, то устройство не запускается. Как написать код так, чтобы без редактирования в ручную EEPROM, автоматически при первом включении устройства, в EEPROM записались "0" по адресу указанным в коде! Повторяю, только при первом включении устройства. При последующих включениях, устройство должно считывать с EEPROM, только данные которые были записанны при работе устройства, которые зависят от действия человека. Пример кода ниже.
Спасибо!

Код: Выделить всё


#include <avr/io.h>
#define F_CPU 1000000UL
#include <avr/eeprom.h>
#include <util/delay.h>
#define EEPROM_SECTION  __attribute__ ((section (".eeprom"))) // для удобства написания/чтения программы 

unsigned char ON=1;
unsigned char OFF=0;
unsigned char e=0;
unsigned char CANAL1;

uint8_t Mem1   EEPROM_SECTION=0; 

void Memori()
{
eeprom_update_byte(&Mem1,CANAL1);
}

int main(void)
{
DDRD=1;

CANAL1=OFF;

CANAL1=eeprom_read_byte(&Mem1);
while(1)
	{
	_delay_ms(500);
	e=e+1;
	if (e>200)
		{
		Memori();
		e=0;
		}
	if (bit_is_set(PIND,1))
	CANAL1=OFF;
	if (bit_is_set(PIND,2))
	CANAL1=ON;

	if(CANAL1==ON)	PORTD |= _BV(PD0);
	else	PORTD &=~_BV(PD0); 
	}
}
Реклама
Аватара пользователя
koyodza
Собутыльник Кота
Сообщения: 2623
Зарегистрирован: Вс июл 17, 2011 11:51:52
Контактная информация:

Re: Работа с памятью. Запись в EEPROM.

Сообщение koyodza »

king-live писал(а):Как написать код так, чтобы без редактирования в ручную EEPROM, автоматически при первом включении устройства, в EEPROM записались "0" по адресу указанным в коде
При каждом запуске проверяете EEPROM yа чистоту (все FF), если чисто - записываете свои значения по-умолчанию. Куда уж проще
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»