Danke fuer die Hinweise. Ich benutzte den 24LC02B EEPROM von Microchip.
Nach dem IIC-Protokoll folgen: nach Start-Signal die Addresse auf dem
EEPROM, dann die zu uebertragenden Daten und Stop-Signal.
Das Datenblatt ist beigefuegt.
Als Entwicklungsumgebung benutze ich tasking. Ich habe versucht mir
die Ausgangswerte der Funktionen anzuschauen, aber das Debugging-Tool
von Tasking ist nicht zuverlaessig und instabil. Ferner kenne ich mich
mit dem genauen Ablauf im Microkontroller noch nicht so genau aus.
Dave ist eine Software von Infineon zur MCU-Programmierung und
enthaelt fertige Funktionen wie diese vWriteData. Die Funktion ladet das
zugehoerige TDF-Signal(also welche Art von Nachricht es ist) und danach
auch das weitere Byte ins U2C1_TBUF00.
Nochmal der Code:
//Schreiben:
U2C1_IIC_vWriteData(U2C1TDF_MStart,0xA0); //Schicken von Start und
Adresse+R/W-Zugriff
U2C1_IIC_vWriteData(U2C1TDF_MTxData,0x00);//Adresse auf EEPROM
U2C1_IIC_vWriteData(U2C1TDF_MTxData,0x64); //Zu uebertragende Daten
U2C1_IIC_vWriteData(U2C1TDF_MStop,0xA0); //Stop
for(i=0;i<0xffff;i++);//Warten
for(i=0;i<0xffff;i++);
//EEPROM Lesezugriff:
U2C1_IIC_vWriteData(U2C1TDF_MStart,0xA0);//Nochmal
Start+Adresse+Adresse+R/W-Zugriff
U2C1_IIC_vWriteData(U2C1TDF_MTxData,0x01); //Adresse auf EEPROM, die
gelesen werden soll
U2C1_IIC_vWriteData(U2C1TDF_MStart,0xA1); //Nochmal Adresse des EEPROM
//Hier bleibt es beim lesen stecken
b=(ubyte)U2C1_IIC_uwReadData(); //Auslesen der Speicheradresse
U2C1_IIC_vWriteData(U2C1TDF_MStop,0xA1); //Stop
und die Definition der Funktionen:
void U2C1_IIC_vWriteData(uword uwTDF, uword uwData)
{
while(U2C1_TCSRL & 0x0080); // check TDV, wait until TBUF
is ready
U2C1_PSCR |= 0x2000; // clear
PSR_TBIF
U2C1_TBUF00 = ((uwTDF << 8) & 0x0700) | (uwData & 0x00FF); // load
TBUF00
} // End of function U2C1_IIC_vWriteData
uword U2C1_IIC_uwReadData(void)
{
while(!((U2C1_PSR & 0x8000) || (U2C1_PSR & 0x4000)));
U2C1_PSCR |= 0xC000; // clear PSR_AIF & PSR_RIF
return(U2C1_RBUF); // return receive buffer register
} // End of function U2C1_IIC_uwReadData