Gast
#2358910
Hallo,
ich bin ein wenig ratlos bei diesem Phänomen. Im EEprom des ATmega128
habe ich Stellwerte gespeichert und wenn ich die Schaltung einschalte,
sprich 5V anlege, wird nicht der Wert 666 gelesen, sondern FFF. Ich habe
das Flash nicht neu geschrieben und das Fusebit EESave ist gesetzt.
Reset gibt dann den richtigen Wert zurück. Ich habe zuerst die
Defninition eeprom_busy_wait() und dann meine ...mega128 probiert, in
der Hoffnung, das hier nicht auf ready EEprom gewartet wird --
#define eeprom_busy_wait() do {} while (!eeprom_is_ready())
#define eeprom_busy_wait_mega128() do {} while (EECR & (1<<EEWE));
unsigned int DAC_value_U_NT2_EE[1] EEMEM, DAC_value_U_NT1_EE[1]
EEMEM, DAC_value_I_NT2_EE[1] EEMEM, DAC_NT2_U_Mult_EE[1] EEMEM;
void EEprom_value_ini() //(unsigned int *) == Adresse Pointer set
{
eeprom_busy_wait_mega128();
DAC_value_U_NT2 = eeprom_read_word((unsigned int
*)DAC_value_U_NT2_EE[1]);
DAC_value_U_NT2 &= 0x0fff; // 16(12) bit Wert aus EEprom lesen und
oberes Nibble entfernen
sprintf(buffer,"U%4x\t",DAC_value_U_NT2);
UART_0_Text_Ram(buffer);
eeprom_busy_wait_mega128();
DAC_value_I_NT2 = eeprom_read_word((unsigned int
*)DAC_value_I_NT2_EE[1]);
DAC_value_I_NT2 &= 0x0fff; // 16(12) bit Wert aus EEprom lesen und
oberes Nibble entfernen. Wichtig da U und I addiert werden für Ausgabe
24 bit DAC
sprintf(buffer,"I%4x\t",DAC_value_I_NT2);
UART_0_Text_Ram(buffer);
}
funktionieren leider beide gleich. Tool AVR Studio 5. Was mache ich
falsch.
Danke schon mal für Eure Hilfe und Gruß Bernhard