Oh entschuldigug![]()
Code für den Master wird bald nach gereicht, da ich an einem anderen PC programmiere. Ich programmiere in C mit WinAVR. Hier aber schonmal der Code für den I2C Bus für den Slave Atmega, welchen ich glaube ich hier aus dem Forum gesaugt habe...
Code:#include "i2cbus.h" unsigned char i2c_read_byte (void) { /*send content of TWDR; TWEA = enable ACK*/ TWCR = (1<<TWINT) | (1<<TWEA) | (1<<TWEN); /*wait, until byte has been received --> ACK*/ while (!(TWCR & (1<<TWINT))); return TWDR; } unsigned char i2c_receive (void) { unsigned char value = 0; value = i2c_read_byte (); return value; }
Aufrufen tue ich dass dann folgendermaßen:
Die "variablexyz" habe ich vorher als volatile deklariert und initialisiert.Code:SIGNAL(SIG_2WIRE_SERIAL){ variablexyz = i2receive(); PORTB = 0xFF //LED am Slave anschalten;}







Zitieren

Lesezeichen