I2c Acknowledge Polling

Gast #2734133
Lesenswert?

Hallo brauche dringend Hilfe.

Bin dabei das Acknowledge polling zu implementieren.
Laut Datenblatt:

Send Write Command
Send Stop Condition to Initiate Write Cycle
Send Start
Send Control Byte with R/W = 0
Did Device Acknowledge (ACK = 0)?
....Yes....
Next Operation
...No....
zurück zu Send Start.

so hab nun implementiert, nun sieht es wiefolgt bei mir aus, wenn Page 
Grenze erreicht ist und zu nächsten Page springen soll:
1
//dass Send Write Command bedeutet, das senden von Daten (I2C_Send)oder wie jetzt
2

3

4
if ((Address + i) % EEPROM_PAGE == 0) {
5
// Acknowledge Polling
6
I2C_Stop(Base);
7
loop:                  //Slave Addresse mit R/W bit
8
ack = I2C_StartTX(Base, EEPROM_SLAVE, 0);
9
if (ack != 0) // falls kein ack dann
10
goto loop; //nochmal Start() senden
11
else
12
goto next_page;// falls ack, gehe zur nächsten Page

hoffe das ich es richtig gemacht habe.

}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren