Forum: Mikrocontroller und Digitale Elektronik XE167 HW IIC wait until transmission completed?


von clonephone82 (Gast)


Lesenswert?

Hallo,

Ich hab einen Software i2c Treiber den ich auf HW i2c (USIC3) portieren 
möchte. Ich möchte die HW aber nicht interrupt gesteuert nutzen sonder 
mit polling warten usw. Aber ich habe bis jetzt noch keine Möglichkeit 
gefunden zu warten bis die Übertragung fertig ist so wie bei AVR zum 
Beispiel.

Hier mal ein Auszug aus i2c start:
1
...
2
...
3
       // check TDV, wait until TBUF is ready
4
       while(U3C1_TCSRL & 0x0080);
5
6
       // clear PSR_TBIF
7
       U3C1_PSCR |= 0x2000;
8
       
9
       // clear PSR_SCR, PSR_TSIF, PSR_TBIF
10
       U3C1_PSCR |= ( (1<<IIC_SCR) | (1<<IIC_TSIF) | (1<<IIC_TBIF) );
11
12
       // load transmit buffer TBUF00
13
       U3C1_TBUF00 = ((U3C1TDF_MStart << 8) & 0x0700) | (addr & 0x00FF);
14
15
       // wait until transmission completed
16
       while(U3C1_??? Finished??);
17
       // habe nichts gefunden auf das ich hier warten könnte !!!
18
...
19
...

Da ich ACK polling machen möchte (für EEPROM) muss ich hier warten und 
das ACK abfragen! Aber eben habe in der USIC noch nichts gefunden.

Hat jemand hier ne Idee?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.