/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : Car NEON
Version : 1
Date    : 07.03.2009
Author  : DataLife
Company : RadioKot
Comments: 


Chip type               : ATtiny2313
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 32
*****************************************************/

#include <tiny2313.h>
#include <delay.h>

// Declare your global variables here


void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Установка портов

// Port A 
PORTA=0x00;
DDRA=0x00;

// Port B (включены все 8 выходов)
PORTB=0x00;
DDRB=0xFF;

// Port D
PORTD=0x00;
DDRD=0x00;

#asm ("wdr")
/* Write logical one to WDTOE and WDE */
WDTCR |= 0x18;      //(1<<WDTOE) | (1<<WDE);
/* Turn off WDT */
WDTCR = 0x00;

// Таймеры, часы и прочее
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

//Перед циклом на всякий случай установим низкий уровень на выводах

PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=0;
PORTB.4=0; //никто не горит
PORTB.5=0;
PORTB.6=0;
PORTB.7=0;

Int a=0;

while (1)
      {  
      
      if(PORTA.1==1){
      a=1;
      }  
      else{a=0;}
      if (a==1){
      
      /*=========================
       Программа бегущих огней 
       =========================*/
      
      PORTB.0=1; 
      delay_ms(200);
      
      PORTB.1=1;
      delay_ms(200);
      
      PORTB.2=1; 
      delay_ms(200);
      
      PORTB.3=1; 
      delay_ms(200); 
      
      PORTB.4=1;
      delay_ms(200); 
      
      PORTB.5=1; 
      delay_ms(200); 
      
      PORTB.6=1;
      delay_ms(200); 
      
      PORTB.7=1; 
      delay_ms(200); 
      
      //начинаем потихоньку тухнуть в прямом порядке
      
      PORTB.0=0;
      delay_ms(200);
      
      PORTB.1=0;
      delay_ms(200); 
      
      PORTB.2=0;
      delay_ms(200);
      
      PORTB.3=0;
      delay_ms(200);
      
      PORTB.4=0;
      delay_ms(200); 
      
      PORTB.5=0;
      delay_ms(200);
      
      PORTB.6=0;
      delay_ms(200); 
      
      PORTB.7=0;
      delay_ms(200);
      
      /*=================== 
      Конец программы огней
      =====================*/                            
      }
      else{      
      PORTB.0=1;   
      PORTB.1=1;
      PORTB.2=1;
      PORTB.3=1;
      PORTB.4=1;
      PORTB.5=1;
      PORTB.6=1;
      PORTB.7=1;      
      }

      };

