#include <hidef.h> 
#include "derivative.h" 
int aktDioda=1; //aktuální rozsvícená LED dioda
int smer=1; //pro určení směru blikání LED diod

void interrupt VectorNumber_Vtod preruseniTOD(){
TODSC_QSECF=1; //vynulování čtvrt-sekundového přerušení
  
switch(aktDioda)
{                       
  case 2:PTCD=0x34;break; //rozsvícení LED 2, zhasnutí ostatních LED diod
  case 3:PTCD=0x2C;break; //rozsvícení LED 3, zhasnutí ostatních LED diod
  case 4:PTCD=0x1C;break; //rozsvícení LED 4, zhasnutí ostatních LED diod
  default:PTCD=0x38; //rozsvícení LED 1, zhasnutí ostatních LED diod
}

aktDioda=aktDioda+smer;
 
 if(aktDioda>4){
 aktDioda=1;
 }
 
 if(aktDioda<0){
 aktDioda=4;}
  
}

void main(void) {

  EnableInterrupts; //povolení přerušení
  
  PTCDD=0x3C; //konfigurace pinů LED diod 1 až 3 jako výstupních
  PTCD=0x3C;  //zhasnutí LED diod 1 až 3
  PTAPE=0x40; //připojení pull-up rezistoru k tlačítku 1
  
  //-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
  //-------------------------



  for(;;) {
  
  if(PTAD_PTAD6==0){  //testování tlačítka 1
  
  if(smer==1){ //nastavení správného směru blikání LED diod
  smer=-1;
  }else{
  smer=1;
  }
  
  }
  
    __RESET_WATCHDOG(); //reset registru watchdog
  }
}
