#include <hidef.h> 
#include "derivative.h" 

#define LED1 1  //definuji masky pro LED diody 1 až 4
#define LED2 2
#define LED3 4
#define LED4 8

int vysledek=0; //pro uchování výsledné hodnoty 
int predchoziVysledek=0; //pro uchování předchozí výsledné hodnoty

void main(void) {

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

 //-inicializace-AD-převodníku--
  ADCCFG1=0x50; //normální napěťová konfigurace, hodinový signál/4,8-bitový převod, dlouhá vzorkovací doba, hodinový signál sběrnice 
  ADCCFG2=0x00; //výchozí nastavení
  ADCSC2=0x00;  //sofwarový spínač AD převodu 
  ADCSC3=0x05;  //ADC0=0, povolení hardwarového průměrování, hardwarové průměrování z 8 vzorků
  ADCSC1A=0x0A; //vstup výstup ze světelného senzoru   
 //-----------------------------

  for(;;) {
  
  if(ADCSC1A_COCOA==1){ // test dokončení převodu
    vysledek=ADCRLA_D0+ADCRLA_D1*2+ADCRLA_D2*4+ADCRLA_D3*8+ADCRLA_D4*16+ADCRLA_D5*32+ADCRLA_D6*64+ADCRLA_D7*128; //načtení hodnoty registru
 
   vysledek=vysledek/10; //nastaveni rozsahu 16 hodnot
   if( vysledek>15){
   vysledek=15;}
 
 
   ADCSC1A=0x0A; //zapnutí dalšího AD převodu  
  }



if(predchoziVysledek!= vysledek){ //ošetření aby se do registru PTCD nezapisovala stejná hodnota 
predchoziVysledek= vysledek;
}

PTCD_PTCD2=vysledek&LED1;        //zobrazování výsledné hodnoty pomocí LED diod 1 až 4
PTCD_PTCD3=(vysledek&LED2)>>1;
PTCD_PTCD4=(vysledek&LED3)>>2;
PTCD_PTCD5=(vysledek&LED4)>>3;
 
  
    __RESET_WATCHDOG(); 
  } 
}
