ich habe jetzt die R geändert.
ich habe einen LM75 temperatursensor von national semiconductors
angeschlossen.
nach dem senden der startbedingung wirt das TWINT flag gesetzt.
TWSR=$08 zeigt dann das eine Startbedingung gesendet wurde.
das ist schon mehr als vorher.
das kann man auch auf dem oszi sehen. sda geht auf low, kurz später
folgt scl.
nun die adresse:
#define TWINT 7
#define TWSTA 5
#define TWEN 2
#define TWSTO 4
#define TWEA 6
#define START 0x08
#define MT_SLA_ACK 0x18
//Sende adresse
printf("\nSende adresse\r\n");
TWDR=0x4F;
TWCR=(1<<TWINT)|(1<<TWEN);
//warte auf Twint flag, adresse wurde gesendt
while (!(TWCR&(1<<TWINT)));
printf("TWINT Flag Set\r\n");
//check start condition
if((TWSR&0xF8)!=MT_SLA_ACK)
printf("Ack NOT received\r\n");
else
printf("Ack received\r\n");
das TWINT flag wird gesetzt, aber weder bekomme ich ein ack noch sehe
ich was auf dem oszi(müsste ich doch?).
in der doc über den mega64 wird etwas von einer 9 bit adresse
geschrienben (7data,1R/W,1Ack). TWDR hat doch nur 8 bit. wie schreibe
ich den die anderern zwei (R/W , Ack) ?
joe