PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C Source für TWI von Mega8



cumi
07.06.2006, 17:02
Hallo Zusammen

Ich suche ein Code-Beispiel für den Master-Transmitt- und den Slave-Receivemode vom einem Atmel AVR.
Am liebsten Interrupt basiert, oder sonst auch über pollen.

Ich möchte selber sowas programmieren doch leider funktioniert es merkwürdiger weise nicht.

Vielen Dank!

Grüsse cumi

SprinterSB
07.06.2006, 17:24
XXX falsche Baustelle XXX

batti112
07.06.2006, 17:24
Hi!

Guck mal in die Datenblätter, oder such mal im Forum...

mfg
Batti

cumi
07.06.2006, 17:29
gesucht habe ich natürlich schon. doch noch nichts befridigendes gefunden.
Das Problem ist, dass mein Code auf dem Mega32 zu funktionieren scheint, auf dem Mega8 jedoch nicht. Wenn ich jedoch das Manuel von den Beiden vergleiche finde ich keine nennenswerte unterschiede.

Konkret sieht das so aus:


int main(void){
b_setH(LED_DDR,LED_0);
b_setH(LED_DDR,LED_1);
b_setL(LED_PORT,LED_0);
b_setL(LED_PORT,LED_1);

TWBR=38; //50kHz / f_cpu=16MHz

b_setH(TWCR,TWIE);
cli();

TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
while(!(TWCR&(1<<TWINT)));
b_setH(LED_PORT,LED_0);

return 0;
}

// interrupt routines ----------------------------------------------------------
ISR(TWI_vect){
b_setH(LED_PORT,LED_1);
}

Eigentlich sollten doch beide LEDs erlöschen. Das tun sie beim Mega8 jedoch nicht, beim Mega32 schon.

Danke für eure Hilfe.
Grüsse cumi

PicNick
07.06.2006, 18:16
sei() ??? Fehlt das ? Ich seh nur Cli()

bekoeppel
07.06.2006, 18:38
Guck mal da:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=16722&highlight=i2c+slave