#include <hidef.h> 
#include "derivative.h"
int a=0; //proměnná pro ukládání nové hodnoty registru TPM2C1V

void main(void) {

PTAPE=0xC0; //připojení pull-up rezistoru k tlačítku 1


//nastavení časovače---------- 
TPM1MODL=0x4B; //nastavení hodnoty modula registru časovače TPM1, pro čas 2ms
TPM1MODH=0x00;  
   
TPM1SC=0x0F; //zapnutí časovače TPM1(předdělič 128, hodinový zdroj sběrnice)
//----------------------------


//nastavení kanálu 1 TPM2 pro mód PWM-----
TPM2MODH=0x01; //nastavení modula registru TPM2 pro f=10kHz  
TPM2MODL=0xE0;

TPM2C1SC=0x28; //nastavení řídícího registru kanálu 1 TPM2 (MS1B=1, LS1B=1)

TPM2C1VH=0x00; //nastavení nulové hodnoty modula registrů kanálu 1 TPM2  
TPM2C1VL=0x00;  

TPM2SC=0x08; //nastavení řídícího registru TPM2 (hodinový zdroj sběrnice, předdělič/1)
//----------------------------------------
 
  for(;;) {
  
  TPM1SC_TOF=0; //zapnutí zpoždění 2ms
  while(TPM1SC_TOF==0){ __RESET_WATCHDOG();} //zpoždění 2 ms
  
  if(PTAD_PTAD7==0){ //test tlačítka 2, zhasínání LED diody 4
  a=a+1;
  
  if(a>480) //ošetření proti příliž velkým hodnotám
  {
  a=480;
  }
  
  TPM2C1V=a; //nastavení hodnoty modula registrů kanálu 1 TPM2 
   }
    
  if(PTAD_PTAD6==0){ //test tlačítka 1, rozsvědcování LED diody 4
  
  a=a-1;
  
  if(a<0) //ošetření proti záporným hodnotám
  {
  a=0;
  }
  
  TPM2C1V=a; //nastavení hodnoty modula registrů kanálu 1 TPM2
  } 
    __RESET_WATCHDOG(); //reset registru watchdog
  }
}
