PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I²C -- Kommunikation zwischen Atmega8 und 32?



AsuroPhilip
22.10.2011, 23:50
Hallo,

Ich habe einen Atmega32 und einen 8. So nun wollte ich über I2C eine 4-Stellige Zahl vom mega32 zum mega8 übertragen. Ist das möglich, oder muss man jede Zahl einzeln "schicken"?

Ich habe dieses Thema aufgemacht, weil wie hier (https://www.roboternetz.de/community/threads/55253-Zus%C3%A4tzlich-zu-der-M32-noch-ein-mega8) vom Thema abweichen.


mfG
Philip ;)

Frank
23.10.2011, 09:42
i2c ist immer miteinander kompatibel, egal welcher microcontroller. Daten werden Byteweise übertragen, die Anzahl der Bytes ist egal! Virstellige Dezimalzahlen werden in zwei Bytes (16 Bit / INT) umgewandelt und dann halt die zwei Bytes übertragen.

AsuroPhilip
23.10.2011, 10:35
okay, aber wie empfängt man?

AsuroPhilip
23.10.2011, 12:39
senden tue ich dann so: I2CTWI_transmit2Bytes(0x80, 12, 34); ?

und emfangen dann so:

unsigned char ret;
ret = i2c_readNak (http://homepage.hispeed.ch/peterfleury/group__pfleury__ic2master.html#ga7)() ?

Frank
23.10.2011, 17:25
I2C ist ja so ausgelegt das es immer einen Master und einen Slave gibt. Der Master kann Bytes hinschicken und auch Bytes abrufen. Der Slave kann von sich aus keine Daten senden, er muss warten bis Daten abgerufen werden.
Die Slave Programmierung ist ein wenig komplizierter als die übliche Master Programmierung. Im Bascom gabs aber irgendwo mal ein paar Beispiele, solltest du auch in der Hilfe finden.
Für C kannst du auch hier ins Wiki schaun unter http://www.rn-wissen.de/index.php/TWI_Slave_mit_avr-gcc

AsuroPhilip
23.10.2011, 21:19
Danke, werde mal gucken. Nur was ich komisch finde sobalt mein mega8 nur befehle an die pcf´s sendet, kann ich die base nicht steuern!