// по нажатию на D1 кнопку: В0 - светиться, при отжатии - тухнет
// при этом, при отжатии мигает В2, а при нажатии мигает В1
//--------------------------------------------------------------

#include <tiny2313.h>
#include <delay.h>

 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);       
      }
    }
 }
 