Hallo
Wie lange sollen die Daten gespeichert werden. Bis zum nächsten Ausschalten oder für "ewig". Das erste wäre dann ein gewöhnliches Array:aber wie kann man diese werte auf dem rp6 speichern?
Ewig würde es imEEProm gespeichert werden:Code:uint16_t daten[512], n; n=0; daten[n]=getStopwatch1(); writeInteger(daten[n], DEC);
Wie das genau funktioniert habe ich noch nicht getestet, mit 8bit-Werten mache ich es so:Code:#include <avr/eeprom.h> eeprom_write_word (uint16_t *addr,uint16_t value); eeprom_read_word (const uint16_t *addr);
(Beim zweiten Start den auskommentierten Code nach Init() einmalig auch ausführen!)Code:#include "asuro.h" void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous write */ while(EECR & (1<<EEWE)) ; /* Set up address and data registers */ EEAR = uiAddress; EEDR = ucData; /* Write logical one to EEMWE */ EECR |= (1<<EEMWE); /* Start eeprom write by setting EEWE */ EECR |= (1<<EEWE); } unsigned char EEPROM_read(unsigned int uiAddress) { /* Wait for completion of previous write */ while(EECR & (1<<EEWE)) ; /* Set up address register */ EEAR = uiAddress; /* Start eeprom read by writing EERE */ EECR |= (1<<EERE); /* Return data from data register */ return EEDR; } int main(void) { unsigned i; unsigned char c; Init(); /* EEPROM_write(509,'m'); EEPROM_write(510,'i'); EEPROM_write(511,'c'); */ SerWrite("\n\n\rInhalt des EEPROMS\n\r10.3.2007 (code by dalmator)\n\n\r",54); for (i=0;i<512;i++) { StatusLED(RED); c=EEPROM_read(i); StatusLED(GREEN); SerWrite(&c,1); } while (1); return 0; }
Gruß
mic






Zitieren

Lesezeichen