#include int main (void) { DDRB &= ~( 1 << PB0 ); //PB0 Eingang DDRB &= ~( 1 << PB1 ); //PB1 Eingang PORTB |= ( 1 << PB0 ); //Pull up an PORTB |= ( 1 << PB1 ); //Pull up an DDRC &= ~( 1 << PC2 ); //PC2 Eingang DDRC &= ~( 1 << PC3 ); //PC3 Eingang PORTC |= ( 1 << PC2 ); //Pull up an PORTC |= ( 1 << PC3 ); //Pull up an DDRC |= ( 1 << PC0 ); //PC0 Ausgang DDRC |= ( 1 << PC1 ); //PC1 Ausgang void del_ms(int n)//delay n ms { int x; while(n--){ x=1300; //empirically determined factor 8 MHz while(x--); } } while(1) { if (PINB & (1 << PB0))//wenn PB0 High ist... { PORTC |= (1 << PC0); //PC0 High del_ms(1024); } if (PINB & (1 << PB1))//wenn PB1 High ist... { PORTC |= (1 << PC1); //PC1 High del_ms(1024); } if (PINC & (1 << PC2))//wenn PC2 High ist... { PORTC |= (1 << PC0); //PC0 High del_ms(1024); } if (PINC & (1 << PC3))//wenn PC3 High ist... { PORTC |= (1 << PC1); //PC1 High del_ms(1024); } // Eine Schleife if (!(PINB & (1 << PB0))) //wenn PB0 Low ist... { PORTC &= ~(1 << PC0); //PC0 Low } if (!(PINB & (1 << PB1))) //wenn PB1 Low ist... { PORTC &= ~(1 << PC1); //PC1 Low } if (!(PINC & (1 << PC2))) //wenn PC2 Low ist... { PORTC &= ~(1 << PC0); //PC0 Low } if (!(PINC & (1 << PC3))) //wenn PC3 Low ist... { PORTC &= ~(1 << PC1); //PC1 Low } } return 0; }