Hallo
aber wie kann man diese werte auf dem rp6 speichern?
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:
Code:
uint16_t daten[512], n;
n=0;
daten[n]=getStopwatch1();
writeInteger(daten[n], DEC);
Ewig würde es imEEProm gespeichert werden:
Code:
#include <avr/eeprom.h>
eeprom_write_word (uint16_t *addr,uint16_t value);
eeprom_read_word (const uint16_t *addr);
Wie das genau funktioniert habe ich noch nicht getestet, mit 8bit-Werten mache ich es so:
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;
}
(Beim zweiten Start den auskommentierten Code nach Init() einmalig auch ausführen!)
Gruß
mic
Lesezeichen