#include #include #include #include //define LEER PA0 //define LEER PA1 //define RESET PA2 #define LED6 PB0 #define LED7 PB1 #define LED8 PB2 #define IN3 PB3 //PCINT3 #define IN2 PB4 //PCINT4 #define SDA PB5 #define IN1 PB6 //PCINT6 #define SCL PB7 #define LED1 PD0 #define LED2 PD1 #define LED3 PD2 #define LED4 PD3 #define LED5 PD4 #define T1 PD5 //define LEER PD6 /* SLAVE-ADRESS */ #define slave_address 0b00001000 //Adresse 0x08 ohne R/W Bit //Master write -> TWDR = 0b00010000 //Master read -> TWDR = 0b00010001 /**************************************************************************** Variabeln STATUS ****************************************************************************/ volatile unsigned char STATUS0 = 0; volatile unsigned char STATUS1 = 0; /**************************************************************************** Variabeln TWI ****************************************************************************/ volatile unsigned char STATUS_TWI = 0; volatile unsigned char DATA[7]; volatile unsigned char i_TWI; //TWI Zähler für Array-Byte /**************************************************************************** Hauptprogramm ****************************************************************************/ int main(void) { //Port settings DDRB |= (1<> 5); //LED 6-8 PORTD |= (DATA[0] & 0b00011111); //LED 1-5 STATUS0 &= ~(1<<0); } } } /**************************************************************************** Interrupt TWI START ****************************************************************************/ ISR(USI_START_vect) { STATUS_TWI = 0b00000001; //START empfangen while (PINB & (1<> 1) != slave_address) //Falsche Slave-Adresse, TWI Beenden { STATUS_TWI = 0; USICR &= ~((1<