
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <util/delay.h>
//#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <stdint.h>
#include <math.h>


extern void IncFreq ();
extern void DecFreq();
 
extern void DecMemNum();
extern void IncMemNum();


//interrupt [TIM2_COMP] void timer2_comp_isr(void) //fix
uint8_t NewState=0x03;
uint8_t OldState=0x03;


void InitEncoder()
{
NewState=PIND & 0b00000011; 
OldState=NewState;
}


void CheckEncoder()
{
uint8_t i=0;
NewState=PIND & 0b00000011; 
if(NewState!=OldState)
{
if (OldState==2) { if(NewState == 3) {  IncFreq ();  }  if(NewState == 0) { DecFreq();} }
if (OldState==0) { if(NewState == 2) {  IncFreq ();  }  if(NewState == 1) { DecFreq(); } }
if (OldState==1) { if(NewState == 0) {  IncFreq ();  }  if(NewState == 3) { DecFreq();} }
if (OldState==3) { if(NewState == 1) {  IncFreq ();  }  if(NewState == 2)  { DecFreq();  } }
OldState=NewState;
TCNT1=0x00; 
}
 if (i>3) {i=0; }
}

/*
void CheckEncoder1()
{
NewState=PIND & 0b00000011; 
if(NewState!=OldState)
{
if (OldState==2) { if(NewState == 3) {  IncMemNum(); }  if(NewState == 0) { DecMemNum();  } }
if (OldState==0) { if(NewState == 2) {   IncMemNum();  }  if(NewState == 1) { DecMemNum(); } }
if (OldState==1) { if(NewState == 0) {   IncMemNum(); }  if(NewState == 3) { DecMemNum();  } }
if (OldState==3) { if(NewState == 1) {  IncMemNum();  }  if(NewState == 2)  {DecMemNum(); } }
OldState=NewState;
}

}
*/