/*
 * AVRGCC2.c
 *
 * Created: 11.04.2014 17:18:55
 *  Author: B2
 */ 

// запаеная в плату на светодиод
#define LED_PORT_DDR        DDRD // B
#define LED_PORT_OUTPUT     PORTD  // B
#define LED_BIT             6 //0

#define LED2_PORT_DDR        DDRB 
#define LED2_PORT_OUTPUT     PORTB  
#define LED2_BIT             0 

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <util/delay.h>


volatile unsigned short sec=0, flag=0, min=0;

// обработчик прерывания
ICR(TIMER1_OVF_vect) {

TCNT1H=0;
TCNT1L=0;
flag=1;
}

void initTimer1(void)
{
cli();
TCCR1A=0; // выводы -нет, шим - нет
TCNT1=0; // стартуем начиная с нуля
TCCR1B=3; // предделитель 1024
TIMSK|=_BV(TOIE1); // Прерывание по переполнению ТС1

}

int main(void)
{
DDRD|=_BV(LED_BIT); // pin D6 - output LED
DDRB|=_BV(LED2_BIT); // pin B0 - output LED2
PORTD&=~_BV(LED_BIT);	// v 0 - светодиод горит
PORTB&=~_BV(LED2_BIT);	// v 0 - светодиод горит
_delay_ms(500);
PORTD|=_BV(LED_BIT); // v 1 - светодиод не горит
PORTB|=_BV(LED2_BIT); // v 1 - светодиод не горит

initTimer1();
sei();	
while(1)
    {
    if (flag==1){
		flag=0;
		sec++;
		if(sec>59) {
//			LED_PORT_OUTPUT &= ~_BV(LED_BIT); // в 0
//			LED2_PORT_OUTPUT &= ~_BV(LED2_BIT); // в 0
			sec=0;
			min++;
			if(min>59) min=0;
			}
		}
    }
}

