با سلام
دوست عزيز از كد زير براي راه اندازي ADC استفاده كنيد. اگه بازم جواب نداد و سوالي داشتيد در خدمتيم.
کد:
//ADC Sample (without interrupt) MCK=48MHz
unsigned char ad_channel; //adc channel
unsigned int adv; //value
//ADC setup
ad_channel =4;
//ADC: PRES=4->MCK/10 SHTIM =3 -> 4/4,8MHz=833ns STARTUP =11 ->20us
AT91C_BASE_ADC->ADC_MR = (3<24)|(11<<16)|(4<<8);
//enable channel and set PIN to ADCx function (no need to write PIO!!)
AT91C_BASE_ADC->ADC_CHER = (1<< ad_channel);
//start first conversion
AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START;
while(1) //loop
{
...
//if data ready
if(AT91C_BASE_ADC->ADC_SR & (1 << ad_channel))
{
//read channel register and reset end of conversion (EOC)
adv = (unsigned int*)((AT91C_ADC_CDR0) + ad_channel);
//do whatever you want with ADC-value
//start next conversion
AT91C_BASE_ADC->ADC_CR = AT91C_ADC_START;
}
} //end loop
و يادتون نره كه پايه ADVREF رو به ولتاژ 3.3V وصل كنيد.