I2c Acknowledge Polling

Gast #2734133
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.

}
Ich möchte dir zwar nichts vorschreiben, jedoch ist es sehr 
unkonventionell schleifen mit goto anweisungen durchzuführen.
Nimm lieber eine Do-While-Schleife.
( womöglich löst es nicht das Problem, jedoch macht es aus dem Quelltext 
einen ordentlichen C-Quelltext)
Gruß, Jakov

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.