Gast
#217486
Irgendwie ist das nicht mehr schön. Jede neue Funktionalität, die ich
verwenden will bricht mir immer wieder die Knie. Dabei ist das laut
Beschreibung garnicht so schwer zu verstehen. Ich verstehe deshalb
nicht, warum diese Funktion immer 0xFF ausliest:
#define CONFIG_START_FAN 0
#define CONFIG_SIZE_FAN 1 + FAN_PWM_FAN_NUMS * 2
#define CONFIG_READY 0xAA55
void config_setword(uint16_t address, unsigned short value)
{
eeprom_busy_wait();
eeprom_write_word(&address, value);
return;
}
unsigned short config_getword(uint16_t address)
{
unsigned short value;
eeprom_busy_wait();
value = eeprom_read_word(&address);
return(value);
}
Und nun der Aufruf:
char conv_buf[10];
config_setword(CONFIG_START_FAN, CONFIG_READY);
uart1_puts("\r\nCFG: ");
itoa(config_getword(CONFIG_START_FAN), conv_buf, 16);
uart1_puts(conv_buf);
uart1_puts("\r\n");
Sollte zumindest in Hex auch die 0xAA55 ausgeben und nicht 0xFFFF.
Wo könnte der Fehler liegen? Evtl. an der Adresse? Laut Datenblatt ist
der EEPROM-Address-Space von 0 - 4096. Also müsste es doch so gehen.