#include "chip.h" int k; const uint32_t OscRateIn = 12000000; static ADC_CLOCK_SETUP_T ADCSetup; static void Init_ADC_PinMux(void) { Chip_IOCON_PinMuxSet(LPC_IOCON, IOCON_PIO1_0, FUNC2); } void Chip_GPIO_Init(LPC_GPIO_T *pGPIO) { Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO); } int main(void) { uint16_t dataADC; int j; //Chip_GPIO_Init(LPC_GPIO); volatile static int h = 0 ; volatile static int l = 1000 ; Init_ADC_PinMux(); /* ADC Init */ Chip_ADC_Init(LPC_ADC, &ADCSetup); Chip_ADC_EnableChannel(LPC_ADC, ADC_CH1, ENABLE); while(1) { j = 50000; while (j--) { /* Start A/D conversion */ Chip_ADC_SetStartMode(LPC_ADC, ADC_START_NOW, ADC_TRIGGERMODE_RISING); /* Waiting for A/D conversion complete */ while (Chip_ADC_ReadStatus(LPC_ADC, ADC_CH1, ADC_DR_DONE_STAT) != SET) {} /* Read ADC value */ Chip_ADC_ReadValue(LPC_ADC, ADC_CH1, &dataADC); if (h<dataADC) { hoe=dataADC; } if(l>dataADC){ l=dataADC; } } if(h>200){ Chip_GPIO_SetPinDIROutput(LPC_GPIO, 3, 2); Chip_GPIO_SetPinDIRInput(LPC_GPIO, 3, 1); } if(l<200){ Chip_GPIO_SetPinDIROutput(LPC_GPIO, 3, 1); Chip_GPIO_SetPinDIRInput(LPC_GPIO, 3, 2); } h = 0; l = 1000; } } |
LPC_PMU->PCON= (1<<1)|(1<<11); SCB->SCR|=(1<<2);//Set SLEEPDEEP bit LPC_SYSCTL->PDRUNCFG &= ~((1<<0) | (1<<1)); __WFI(); |
#include "chip.h" int k; const uint32_t OscRateIn = 12000000; static ADC_CLOCK_SETUP_T ADCSetup; static void Init_ADC_PinMux(void) { Chip_IOCON_PinMuxSet(LPC_IOCON, IOCON_PIO1_0, FUNC2); } void Chip_GPIO_Init(LPC_GPIO_T *pGPIO) { Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_GPIO); } int main(void) { uint16_t dataADC; int j; //Chip_GPIO_Init(LPC_GPIO); volatile static int h = 0 ; volatile static int l = 1000 ; Init_ADC_PinMux(); /* ADC Init */ Chip_ADC_Init(LPC_ADC, &ADCSetup); Chip_ADC_EnableChannel(LPC_ADC, ADC_CH1, ENABLE); while(1) { LPC_PMU->PCON= (1<<1)|(1<<11); SCB->SCR|=(1<<2);//Set SLEEPDEEP bit LPC_SYSCTL->PDRUNCFG &= ~((1<<0) | (1<<1)); j = 50000; while (j--) { /* Start A/D conversion */ Chip_ADC_SetStartMode(LPC_ADC, ADC_START_NOW, ADC_TRIGGERMODE_RISING); /* Waiting for A/D conversion complete */ while (Chip_ADC_ReadStatus(LPC_ADC, ADC_CH1, ADC_DR_DONE_STAT) != SET) {} /* Read ADC value */ Chip_ADC_ReadValue(LPC_ADC, ADC_CH1, &dataADC); /* Print ADC value */ if (h<dataADC) { hoe=dataADC; } if(l>dataADC){ l=dataADC; } } if(h>200){ Chip_GPIO_SetPinDIROutput(LPC_GPIO, 3, 2); Chip_GPIO_SetPinDIRInput(LPC_GPIO, 3, 1); } if(l<200){ Chip_GPIO_SetPinDIROutput(LPC_GPIO, 3, 1); Chip_GPIO_SetPinDIRInput(LPC_GPIO, 3, 2); } h = 0; l = 1000; __WFI(); } } |