#include //Declarations from DAVE3 Code Generation (includes SFR declaration) #include #define RELAY1 IO004_Handle0 #define RELAY2 IO004_Handle1 //#define LED1 IO004_Handle2 //#define LED2 IO004_Handle3 uint32_t flag_condition1=0; uint32_t flag_condition2=0; void delay(long int i); //uint32_t ticks = 0; //void SysTick_Handler(void); //void delay(uint32_t delay); /* To store the conversion result */ ADC004_ResultHandleType reading[50]; int result; void interrupt_handler(void) { static int count=0; static int sum=0; ADC004_GetResult(&ADC004_Handle0,&reading[count]); sum=reading[count].Result+sum; count++; if (count==50) { result=(sum)/50; count=0; sum=0; NVIC002_DisableIRQ(&NVIC002_Handle0); } } int main(void) { DAVE_Init(); // Initialization of DAVE Apps ADC004_GenerateLoadEvent(&ADC004_Handle0); //int dist; while(1) { conversion(); NVIC002_EnableIRQ(&NVIC002_Handle0); } return 0; } int conversion(void) { //int dist; uint32_t flag_condition1=0; uint32_t flag_condition2=0; float voltage voltage=5 / 4095 * result; // Vresult=(Vref * ADCresult ) / (2^12 - 1) IO004_ResetPin(RELAY1); delay(1000); /*threshold voltage is 2v*/ if (flag_condition2==0) { if (voltage<2) { IO004_ResetPin(RELAY1); IO004_SetPin(RELAY2); } else if (voltage==2) { IO004_ResetPin(RELAY1); IO004_SetPin(RELAY2); } } if (flag_condition1==0) { delay(1000); else if (voltage>2) IO004_ResetPin(RELAY2); IO004_SetPin(RELAY1); } return 0; } void delay(long int i) { while (i--) __NOP(); //no operation }