#include <hidef.h> 
#include "derivative.h" 
int vypinac=0;

void interrupt VectorNumber_Vtod preruseni(void){
TODSC_QSECF=1; //vynulování přerušení



if(vypinac==1) {//změna stavu LED diod 1 až 4
PTCD_PTCD2=!PTCD_PTCD2; //změna stavu LED1
PTCD_PTCD3=!PTCD_PTCD3; //změna stavu LED2
PTCD_PTCD4=!PTCD_PTCD4; //změna stavu LED3
PTCD_PTCD5=!PTCD_PTCD5; //změna stavu LED4
} else{
PTCD=0x3C; //zhasnutí LED diod
}


}

void main(void) {

  EnableInterrupts; //povolení přerušení

 PTCDD=0x3C;// nasavení pinů LED diod jako výstupní
 PTCD=0x3C; //zhasnutí LED diod

 //-inicializace-modulu-TOD-
  TODC_TODEN=0; //vypnutí časovače
  TODC=0x20;    //hodinový zdroj LPO, předdělička pro LPO
  TODSC=0x10;   //povolení čtvrsekundového přerušení
  TODC_TODEN=1; //zapnutí časovače TOD
  //-------------------------

 //-inicializace-komparátoru---
  ADCCFG1=0x50; //normální napěťová konfogurace, hodinový signál/4, 8-bitový převod, hodinový signál sběrnice
  ADCSC2=0x30;  //softwarový spínač AD převodu, komparátor povolen, nastavení překlápění komparátoru
  ADCCV1L=0xB6; //nastavení hodnoty, kterou komparátor porovnává s měřenou
  ADCSC3=0x0D;  //ADC0=1b, povolení hardwarového průměrování, hardwarové průměrování z 8 vzorků
  ADCSC1A=0x05; //přerušení zakázáno, DIFFA=0b, vstup nastaven pro osu x akcelerometru
 //----------------------------


  for(;;) {
  
  if((ADCSC1A_COCOA==1)&&(vypinac==0)){ //stav kdy došlo k překročení 60°
  vypinac=1;   //zapnutí blikání LED diod
  ADCSC2=0x20; //nastavení aby se komparator překlopil až snimana hodnota bude menší než v ADCCV1L 
  ADCSC1A=0x05;//spuštění dalšího AD převodu
  }
  
  if((ADCSC1A_COCOA==1)&&(vypinac==1)){ //stav kdy nedošlo k překročení 60°
  vypinac=0;   //vypnutí blikání LED diod
  ADCSC2=0x30; //nastavení aby se komparator překlopil až snimana hodnota bude větší než v ADCCV1L 
  ADCSC1A=0x05;//spuštění dalšího AD převodu
  }
    __RESET_WATCHDOG(); 
  } 
  
}
