int main (void)
{
volatile uint32_t data;
unsigned char i;
unsigned int addr_sum,temp;
uint32_t current_clkdiv, val, temp_data, n;
SystemInit(); /* ³õʼ»¯Ä¿±ê°å£¬ÇÐÎðɾ³ý */
GPIOInit(); /* GPIO³õʼ»¯ */
UARTInit(); /* UART³õʼ»¯ */
UART1Init(); /* UART³õʼ»¯ */
WDTInit(); /* WDT³õʼ»¯ */
SCTInit ();
DIR_INIT();
DIR_OFF();
SetLedState(0,0,0,0);
myDelay(1);
initvalue();
LPC_GPIO_PORT->SET0 = 0x00822000; // P0.27, P0.16 to P0.13
// LPC_GPIO_PORT->SET0 |= 0x00822000;
LPC_GPIO_PORT->DIR0 &= 0xFF7DDFFF; // P0.27, P0.16 to outpu
LPC_SYSCON->PDRUNCFG &= ~(ADC_PD);
// LPC_SYSCON->PRESETCTRL &= (ADC_RST_N);
// LPC_SYSCON->PRESETCTRL |= ~(ADC_RST_N);
// LPC_SYSCON->SYSAHBCLKCTRL |= (ADC | GPIO | SWM);
LPC_SYSCON->SYSAHBCLKCTRL |= (ADC);
LPC_SWM->PINENABLE0 &= ~(ADC_3|ADC_9|ADC_10); // Fixed pin analog functions enabled
// LPC_SWM->PINENABLE0 &= ~(ADC_3);
// LPC_SWM->PINENABLE0 |= (ADC_1|ADC_2|ADC_4|ADC_5|ADC_6|ADC_7|ADC_8|ADC_11); // ??AD3-11AD????
LPC_ADC->INTEN = (1<<SEQA_INTEN) |
(1<<SEQB_INTEN) |
(0<<OVR_INTEN) |
(0<<ADCMPINTEN0) |
(0<<ADCMPINTEN1) |
(0<<ADCMPINTEN2) |
(0<<ADCMPINTEN3) |
(0<<ADCMPINTEN4) |
(0<<ADCMPINTEN5) |
(0<<ADCMPINTEN6) |
(0<<ADCMPINTEN7) |
(0<<ADCMPINTEN8) |
(0<<ADCMPINTEN9) |
(0<<ADCMPINTEN10)|
(0<<ADCMPINTEN11);
LPC_ADC->TRM &= ~(1<<ADC_VRANGE); // '0' for high voltage
current_clkdiv = (SystemCoreClock / 100000) - 1;
LPC_ADC->CTRL = (1UL << ADC_CALMODE) | (current_clkdiv & 0xFF);
while ((LPC_ADC->CTRL & (1UL << ADC_CALMODE)) != 0);
// current_seqa_ctrl |= LOGIC_HIGH<<ADC_TRIGGER; // Use for software-only triggering
// current_seqb_ctrl |= LOGIC_HIGH<<ADC_TRIGGER; // Use for software-only triggering
// Enable ADC interrupts in the NVIC
NVIC_EnableIRQ(ADC_SEQA_IRQn);
while(1)
{
LPC_ADC->SEQA_CTRL = current_seqa_ctrl;
LPC_ADC->SEQA_CTRL &= ~(0xFFF);
LPC_ADC->SEQA_CTRL |= (1UL << 9);
//¿ªÆôAD
LPC_ADC->SEQA_CTRL |= ((1UL << ADC_START) | (1UL << ADC_SEQ_ENA));
do
{
data = LPC_ADC->SEQA_GDAT; // ????
} while ((data & (1UL << 31)) == 1); // ??????
//¹Ø±Õ
LPC_ADC->SEQA_CTRL &= ~(1UL << ADC_SEQ_ENA);
DIR_ON();
myDelay (500);
LPC_USART0->TXDAT=((data >> 4) & 0xfff)>>8;
while(!(LPC_USART0->STAT&0x08));
LPC_USART0->TXDAT=((data >> 4) & 0xfff);
while(!(LPC_USART0->STAT&0x08));
DIR_OFF();
}
}