Professional Documents
Culture Documents
Adc Program
Adc Program
10 bit ADC
************************************************************************************************************/
#include<lpc21xx.h>
unsigned int data;
int main()
{
adc_init();
if(AD0DR2 & 0x80000000)
{
data = AD0DR2 & 0xFFC0;
// RESULT = AD0DR2[15:6]
}
uart_init();
//printint_adc(data);
printhex_adc(data);
while(1);
}
void adc_init()
{
PINSEL1 = 0x04000000;
// P0.29 = AD0.2
AD0CR = 0x01210004;
/*
START = 001,
PDN = 1,
CLKS = 000 [for 10 bit ADC],
BURST = 1,
CLKDIV = 0x00 [for freq < 4.5MHz],
SEL = 0000 0100 (AD0.2)
*/
}
void uart_init()
{
PINSEL0 = 0x01;
// Tx mode
U0LCR = 0x83;
// set DLAB
U0DLL = 0x13;
U0DLM = 0x00;
U0LCR = 0x03;
// clear DLAB
/*
void printint_adc(unsigned int a)
{
unsigned int i;
unsigned int b,c[10]={48,48,48,48,48,48,48,48,48,48};
for(i=9;i>0;i--)
{
b=a%10;
b=b+48;
a=a/10;
c[i]=b;
}
for(i=0;i<9;i++)
{
U0THR = c[i];
while(!(U0LSR & 0x20));
}
U0THR = '\n';
U0THR= '\r';
}
*/