Habe das ganze jetzt mal versucht zu ändern.
Hier der Code.
Code:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/eeprom.h>
int main(void)
{
DDRB |= (1<<PB1); // Ausgang für LED
DDRB = ~(1<<PB0); // Eingang für Taster
PORTB |= (1<<PB0); // Pullup Einschalten
if(statusfromeeprom) // Zustand aus dem EEPROM lesen
{
DDRB |= (1<<PB1); // LED Einschalten
_delay_ms(10000) // 10 Sekunden warten
DDRB &= ~(1<<PB1); // LED ausschalten
}
while(1)
{
//Hier jetzt den Taster abfragen:
if(PINB & (1<<PB0))
{
_delay_ms(5000); //5 Sekunden warten
if(PINB & (1<<PB0)) //Schauen ob der Pin immer noch High ist
{
//Wie soll ich hier den neuen Wert ins Eeprom schreiben ?
//Also neuen Status in das EEPROM schreiben
}
}
}
}
Das habe ich zum Eeprom lesen und schreiben gefunden.
Code:
// Byte aus dem EEPROM lesen
uint8_t EEPReadByte(uint16_t addr)
{
return eeprom_read_byte((uint8_t *)addr);
}
// Byte in das EEPROM schreiben
void EEPWriteByte(uint16_t addr, uint8_t val)
{
eeprom_write_byte((uint8_t *)addr, val);
}
Natürlich habe ich noch viel mehr zum Eeprom gefunden.
Nur ist es für einen Anfänger nicht gerade leicht das richtige zu finden.
Und ja, ich lese wirklich sehr sehr viel im Internet nur leider fällt es mir sehr schwer das ganze zu verstehen
PS: Welche Zugriffsart benötige ich bei meinem Programm?
Byte, word, dword, float oder block ?
Lesezeichen