#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 4000000UL		
#include <util/delay.h> 
#include <stdio.h>			// standardní i/o knihovna (nutné pro sprintf)
#include "lcd_h.h"          // hlavičkový soubor pro obsluhu lcd


// display MC1602E-TRV, nebo DEM16217SYH



int zmereny_cas = 0, pocet_tepu = 0;
int cas0, cas1, cas2, cas3, cas4, prumerny_cas;						
char ink;
int count=0;


								/////////////// MAIN /////////////
int main ( void )
{
	SREG = 0b10000000;			// povoleni preruseni
	MCUCR = 0b00000011;			// externi preruseni INT0 se generuje na vzestupnou hranu
	GICR = 0b01000000;			// povoleni preruseni INT0
	TCCR1B = 0b00000100;		// spusteni citace 1, preddelicka citace 1 je 256

	
	lcd_init();					// inicializace lcd displeje
	lcd_clrscr();				// smazání obsahu lcd displeje



	while (1)
	{
	prumerny_cas = (cas0 / 5) + (cas1 / 5) + (cas2 / 5) + (cas3 / 5) + (cas4 / 5);	// vypocet prumerneho casu mezi dvema tepy z poslednich peti tepu
	pocet_tepu = 937500 / prumerny_cas;												// pocet tepu za minutu
	}
}


void lcd_init( void )
{
	DDRD = 0xff ;				// deklarace výstupního portu pro lcd      *** ????????????????????????????? PORT !!!!!!!!!!!!!!!!!!!*****
    _delay_ms( 16 ) ;			// nutné zpoždění
	lcd_command( 0b00100000 ) ; // nastavení 4bitové komunikace
	lcd_command( 0b00101000 ) ; // nastavení funkce lcd displeje
	lcd_command( 0b00000100 ) ; // nastavení směru pohybu kurzoru


	// nastavení displeje a kurzoru
	//	0 0 0 0 1 D C B
	//            | | +-- blikání kurzoru; 0: vypnuto; 1: zapnuto
	//            | +---- zapnutí/vypnutí kurzoru; 0: vypnuto; 1: zapnuto
	//            +------ zapnutí/vypnutí displeje; 0: vypnuto; 1: zapnuto
	//	lcd_command( 0b00001... ) ;	// nastavení displeje a kurzoru

	// zde dopište svůj kód
	lcd_command( 0b00001111 ) ;
}


ISR( INT0_vect )
{
	zmereny_cas = TCNT1;
	TCNT1 = 0;	
	
	cas4 = cas3;
	cas3 = cas2;
	cas2 = cas1;
	cas1 = cas0;
	cas0 = zmereny_cas;

	
}







