#include "include.c"

int readButton();
void setLed();
void SysTick_Handler(void);
void PIOD_Handler(void);
void initButton();
void initLight();

void main(void){
	SystemInit();
        temp_init();
        
        startup();
	initAdc();
	initPWM();
        
        
        SysTick_Config(83999);          //För att få avbrott varje ms

        
        //print_meny(); 
        
        
        
        
	while(1){                         //Inväntar keypad
          
       /*  print_temp();
         
         delay(10000000);
         //servo_test(key_pressed());
         //delay(1000000);
         start_mess();
         light_mess();
          */
         
          
	}
}


int readButton(){
	int nButton = *AT91C_PIOD_PDSR & AT91C_PIO_PD1;
	if (nButton != AT91C_PIO_PD1){
		return(0);
	}
	return(1);
}

void setLed(){
	if (readButton() == 0){
		*AT91C_PIOD_SODR = AT91C_PIO_PD3;
	}
	else {
		*AT91C_PIOD_CODR = AT91C_PIO_PD3;
	}
}

void initLight(){
	*AT91C_PIOD_PPUDR = AT91C_PIO_PD3;
	*AT91C_PIOD_OER = AT91C_PIO_PD3;
}

void initButton(){
	*AT91C_PIOD_AIMER = AT91C_PIO_PD1;
	*AT91C_PIOD_DIFSR = AT91C_PIO_PD1;
	*AT91C_PIOD_IFER = AT91C_PIO_PD1;

	*AT91C_PIOD_SCDR = 100;
	// Set up NVIC for fun times  
	NVIC_ClearPendingIRQ(PIOD_IRQn);
	NVIC_SetPriority(PIOD_IRQn, 1);
	NVIC_EnableIRQ(PIOD_IRQn);
	*AT91C_PIOD_IER = AT91C_PIO_PD1;
}