Hallo
hab nur noch ein kleines Problem. Der TWI (I²C) funktioniert gut.
Aber nur wenn ich das TWSR nicht nach dem richtigen Statuscode
abfrage.
Das TWSR hat immer nach jeder Byteübertragung oder Startbedingung den
Code 0x00. Obwohl z.B. nach der Startbedingung eigentlich 0x08 im TWSR stehen müsste.
Könnte mir da mal jemand helfen???
MFG
Tobi
Code:;------------------------------------------------------ ; START Condition ;------------------------------------------------------ send: ldi akku,(1<<TWINT)|(1<<TWSTA)|(1<<TWEN) sts TWCR,akku wait1: lds akku,TWCR sbrs akku,TWINT rjmp wait1 campere2: lds akku,TWSR andi akku,0x00 cpi akku,Start brne Error1 ;------------------------------------------------------ ; Adresse ;------------------------------------------------------ Adresse: ldi akku,SLA_8574 sts TWDR,akku ; Speichert Slave-Adresse in TWDR ldi akku,(1<<TWINT)|(1<<TWEN) sts TWCR,akku wait2: lds akku,TWCR sbrs akku,TWINT rjmp wait2 campere1: lds akku,TWSR andi akku,0x00 cpi akku,SLA_W brne Error2 daten: mov data,r18 sts TWDR,data ldi akku,0b10000100 sts TWCR,akku wait3: lds akku,TWCR sbrs akku,TWINT rjmp wait3 campere3: lds akku,TWSR andi akku,0x00 cpi akku,0x00 brne Error2 ;------------------------------------------------------ ; STOP Condition ;------------------------------------------------------ stop: ldi akku,(1<<TWINT)|(1<<TWSTO)|(1<<TWEN) sts TWCR,akku ret







Zitieren

Lesezeichen