#include <stdbool.h>
#include <stdint.h>
#include "hw_memmap.h"
#include "adc.h"
#include "gpio.h"
#include "pin_map.h"
#include "sysctl.h"
#include "uart.h"
#include "uartstdio.h"
void Init(void);
int main(void)
{
uint32_t pui32ADC0Value[1];
//InitConsole();
Init();
//UARTprintf("ADC ->\n");
//UARTprintf("Type: Single Ended\n");
//UARTprintf("Samples: One\n");
//UARTprintf("Update Rate: 250ms\n");
//UARTprintf("Input Pin: AIN0/PE7\n\n");
while(1)
{
ADCProcessorTrigger(ADC0_BASE, 3);
while(!ADCIntStatus(ADC0_BASE, 3, false))
{}
ADCIntClear(ADC0_BASE, 3);
ADCSequenceDataGet(ADC0_BASE, 3, pui32ADC0Value);
UARTprintf("AIN0 = %4d\r", pui32ADC0Value[0]);
SysCtlDelay(SysCtlClockGet() / 12);
}
}
void Init(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); //ʹÄÜGPIOA
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); //ʹÄÜGPIOE
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); //ʹÄÜ´®¿Ú0
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); //ʹÄÜADC0Ä£¿é
GPIOPinConfigure(GPIO_PA0_U0RX);
GPIOPinConfigure(GPIO_PA1_U0TX);
GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3);
UARTClockSourceSet(UART0_BASE, UART_CLOCK_PIOSC);
UARTStdioConfig(0, 115200, 16000000);
ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC0_BASE, 3, 0, ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);
ADCSequenceEnable(ADC0_BASE, 3);
ADCIntClear(ADC0_BASE, 3);
}