EEPROM Ergbeniss falsch warum? Kategorie: Programmierung C (von Jenny - 24.11.2010 11:49) | ||
| ||
Hallo an alle, ich habe mich am Beispiel von der Doku mit dem Speichern von Daten auf das interne EEPROM befasst. Wenn ich nur einen Wert gebe zu speichern und anschlie�end auslese, erhalte ich den richtigen Wert. Versuche ich aber nun zwei Werte nach der Berechnung auszugeben, stimmt der erste Wert aber der zweite ist falsch. x Wert=-7.5 y Wert=-122.5 Muss ich denn sozusagen ein Page Write durchführen? Oder woran kann es liegen? Ich habe diese Beispielprogramm benutzt um die Funktion und Programmierung eines EEPROM besser zu verstehen. Später möchte ich ein externes EEPROM über I2C ansprechen und Daten speichern und auslesen. �ber Eure hilfe wäre ich sehr dankbar. void main(void) { word address; int datax,EEPROM_datax,datay,EEPROM_datay; address=0x20; datax=25; datay=65; PRO_BOT128_INIT(); I2C_Init(I2C_100kHz ); // write data to 24C64 (8k x 8) EEPROM I2C_Start(); I2C_Write(0xA0); // DEVICE ADDRESS : A0 I2C_Write(address>>8); // HIGH WORD ADDRESS I2C_Write(address); // LOW WORD ADDRESS I2C_Write(datax); I2C_Write(datay); // write Data I2C_Stop(); AbsDelay(5); // delay for EEPROM Write Cycle // read data from 24C64 (8k x 8) EEPROM I2C_Start(); I2C_Write(0xA0); // DEVICE ADDRESS : A0 I2C_Write(address>>8); // HIGH WORD ADDRESS I2C_Write(address); // LOW WORD ADDRESS I2C_Start(); // RESTART I2C_Write(0xA1); // DEVICE ADDRESS : A1 EEPROM_datax=I2C_Read_NACK(); EEPROM_datay=I2C_Read_NACK(); I2C_Stop(); float x,y; if(EEPROM_datax>10) { EEPROM_datax=(10- EEPROM_datax); x=(EEPROM_datax*0.5); } if(EEPROM_datay>10) { EEPROM_datay=(10 - EEPROM_datay); y=(EEPROM_datay*0.5); } float str[3]; str[1]=x; str[2]=y; Str_Printf(str,"%1.2f",x); Msg_WriteChar(97); Msg_WriteChar(120); Msg_WriteChar(61); Msg_WriteText(str); Msg_WriteChar(13); Str_Printf(str,"%1.2f",y); Msg_WriteChar(97); Msg_WriteChar(121); Msg_WriteChar(61); Msg_WriteText(str); Msg_WriteChar(13); } | ||
Antwort schreiben Antworten: Re: EEPROM Ergbeniss falsch warum? (von PeterS - 29.11.2010 15:24) Re: EEPROM Ergbeniss falsch warum? (von Jenny - 29.11.2010 18:31) Re: EEPROM Ergbeniss falsch warum? (von PeterS - 29.11.2010 22:26) Re: EEPROM Ergbeniss falsch warum? (von Jenny - 30.11.2010 11:25) Re: EEPROM Ergbeniss falsch warum? (von PeterS - 30.11.2010 13:42) Re: EEPROM Ergbeniss falsch warum? (von Jenny - 30.11.2010 14:28) Re: EEPROM Ergbeniss falsch warum? (von PeterS - 30.11.2010 15:47) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum