ANALOG TO DIGITAL CONVERSION WITHOUT USING READ AND ANALOG IN (FOR TEMPERATURE SENSOR AND C- CODE)

Dependencies:   mbed

main.cpp

Committer:
AshokK
Date:
2014-05-21
Revision:
0:666052f13fcb

File content as of revision 0:666052f13fcb:

#include "mbed.h"
Serial pc(USBTX,USBRX);
int value1;
int value;
 void initadc()
{
      pc.printf("in adc\n");
      LPC_SC->PCONP|=(1<<15);/// SELECT PCONP GPIO  15th pin
      LPC_SC->PCONP|=(1<<12);/// SELECT PCONP PCADC  12TH pin
      LPC_SC->PCLKSEL0 &= ~ (1<<24);
      LPC_SC->PCLKSEL0 &= ~(1<<25);//SETTING UP OF CCLK for 25Mhz;
      int CCLK = LPC_ADC->ADCR|=(7<<8); ///SET PRESCALAR VALUE /1 so that it works at 13mhz;
      pc.printf("cclkvalue is %d\n",CCLK);
      LPC_PINCON->PINSEL1|=(1<<14);/// select pin (p0.23 ad0.0)
      LPC_PINCON->PINMODE1|=(2<<15);///
      LPC_ADC->ADCR |=(1<<21); //ADC on
      LPC_ADC->ADINTEN |=(1<<0); /// interrupt enable on dis pin 
}
void initchan(int ch)
{
    LPC_ADC->ADCR|=(1<<ch);//SELECT CHANNEL(SEL BITS)
    pc.printf("in channel");
}
 void startadc()
{
    LPC_ADC->ADCR=(1<<24);
 }
int main()
{
    initadc();
    initchan(0);
     while(1)  
    {   
    pc.printf("in main\n");
           // startadc();
    LPC_ADC->ADCR |= (1<<24); // START = start conversion now   
     while ((LPC_ADC->ADGDR & (0x80000000))==0); //wait till done bit in adcr is set
      /* Wait for Conversion end       */  
     int value = (LPC_ADC->ADDR0 >> 4) & 0xFFF;
     pc.printf("adc is %f\n",(value*100)*(3.3/4096));  
              }
}