-         

Ergebnis 1 bis 2 von 2

Thema: eeprom_write_byte

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    10.03.2005
    Alter
    28
    Beiträge
    967

    eeprom_write_byte

    Anzeige

    Hallo,

    folgendes Abspeichern im EEPROM klappt ganz gut.

    Code:
    unsigned char Kp_eeprom EEMEM;
    unsigned char Ki_eeprom EEMEM;
    unsigned char Kd_eeprom EEMEM;
    
    void init_pid(void)
    {
    	// die gespeicherten Parameter laden und Regler initialisieren
    	Kp = (double) eeprom_read_byte(&Kp_eeprom);
    	Ki = (double) eeprom_read_byte(&Ki_eeprom);
    	Kd = (double) eeprom_read_byte(&Kd_eeprom);
    	// PID Timer
    	TCCR0 |= (1 << WGM01) | (1 << CS01) | (1 << CS00);
    	OCR0 = 250;
    }
    
    void pid_set_parameters(unsigned char p, unsigned char i, unsigned char d)
    {
    	// Den aktuellen Variablen die neuen Parameter zuweisen
    	Kp = (double) p;
    	Ki = (double) i;
    	Kd = (double) d;
    	// Die neuen Parameter nicht-flüchtig ablegen, damit sie beim nächsten mal geladen werden können
    	eeprom_write_byte(&Kp_eeprom, (unsigned char) Kp);
    	eeprom_write_byte(&Ki_eeprom, (unsigned char) Ki);
    	eeprom_write_byte(&Kd_eeprom, (unsigned char) Kd);
    
    	//itoa(Kp, num, 10);
    	//uart_puts(num);
    }
    Meine Frage ist nun, ob die Werte immer an der gleichen Stelle im EEPROM gespeichert werden, oder ob automatisch abgewechselt wird für die längere Haltbarkeit des Speichers. Oder muss man das selber implementieren?

    Grüße,
    hacker
    Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Kandel
    Alter
    29
    Beiträge
    1.220
    Die Variablen werden in eine feste Adresse umgesetzt, auf die immer zugegriffen wird. Evtl. unterscheiden sich die Positionen bei einer Neukompilierung, aber während des Betriebs sind sie konstant.
    Wenn du Wear-Leveling haben willst, musst du das wohl selbst implementieren.

    mfG
    Markus

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •