XE167 HW IIC wait until transmission completed?

Gast #2314667
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?

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