// по нажатию на D1 кнопку: В0 - светиться, при отжатии - тухнет // при этом, при отжатии мигает В2, а при нажатии мигает В1 //-------------------------------------------------------------- #include #include void main(void) { #pragma optsize- // борьба с предделителем тактирования самого контроллера CLKPR=0x80; // CLKPR=0x00; // #ifdef _OPTIMIZE_SIZE_ // #pragma optsize+ // #endif // DDRB.0=1; // конкретизируем, что один пин будет как выход DDRB=0xff; // так же, можно сконфигурировать все как выходы DDRD.1=0; // конкретизируем, что один пин будет как вход DDRD=0x00; // так же, можно сконфигурировать все как входы PORTB=0b00000000; // в бинарном типе ввода переменной выключаем светодиоды (эквивалентно 0x00) PORTD=0xff; // подтягиваем входы, через 1M Ом к +питания, для устранения влияния плавающего потенциала => ножка висящая в воздухе воспринимается, как логическая единица while(1) { if (PIND.1==0) { PORTB.0=1; PORTB.1=1; delay_ms(100); PORTB.1=0; delay_ms(100); } else { PORTB.0=0; PORTB.2=1; delay_ms(100); PORTB.2=0; delay_ms(100); } } }