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