Цитата
Так показывайте, будем искать ошибку.
Вот инициализация ADC, PDC и таймера
Код
//ADC init
ADC_Initialize( AT91C_BASE_ADC,
AT91C_ID_ADC,
AT91C_ADC_TRGEN_EN,
AT91C_ADC_TRGSEL_TIOA0,
AT91C_ADC_SLEEP_NORMAL_MODE,
AT91C_ADC_LOWRES_10_BIT,
BOARD_MCK,
BOARD_ADC_FREQ,
10,
1200);
ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_3);
IRQ_ConfigureIT(AT91C_ID_ADC, AT91C_AIC_PRIOR_LOWEST, ADCC0_IrqHandler);
IRQ_EnableIT(AT91C_ID_ADC);
//PDC init
ADC_Ptr1 = ADC_Result;
AT91C_BASE_ADC->ADC_PTCR = AT91C_PDC_RXTDIS;
AT91C_BASE_ADC->ADC_RPR = (unsigned long)ADC_Ptr1; // Receive Pointer Register
AT91C_BASE_ADC->ADC_RCR = 64; // Receive Counter Register
// Set receive pointer register for next transfer
AT91C_BASE_ADC->ADC_RNPR = (unsigned long)ADC_Ptr1;
// Set receive counter register for next transfer
AT91C_BASE_ADC->ADC_RNCR = 64;
AT91C_BASE_ADC->ADC_IER = AT91C_ADC_ENDRX; //enable interrupt on transfer complete
AT91C_BASE_ADC->ADC_PTCR = AT91C_PDC_RXTEN | AT91C_PDC_TXTDIS; //ADC start
//timer init
TC_Configure( AT91C_BASE_TC0,
(AT91C_TC_ASWTRG_CLEAR | AT91C_TC_ACPC_CLEAR | AT91C_TC_ACPA_SET | AT91C_TC_LDRA_RISING |
AT91C_TC_WAVE | AT91C_TC_WAVESEL_UP_AUTO | 0 ));
TC_Start(AT91C_BASE_TC0); //старт таймера
вот прерывание:
Код
void ADCC0_IrqHandler(void)
{
unsigned int status, i;
unsigned short* ADC_Ptr2;
status = AT91C_BASE_ADC->ADC_SR;
if (status & AT91C_ADC_ENDRX)
{
ADC_Ptr2 = ADC_Result;
AT91C_BASE_ADC->ADC_RPR = (unsigned long) ADC_Ptr2; // Receive Pointer Register
AT91C_BASE_ADC->ADC_RCR = AD_DATA_BUFFER_SIZE; // Receive Counter Register
//AT91C_BASE_ADC->ADC_RNPR = (unsigned long)ADC_Ptr_Next; // Receive Next Pointer Register
//AT91C_BASE_ADC->ADC_RNCR = AD_DATA_BUFFER_SIZE; // Receive Next Counter Register
conv_done = 1;
}
else if((status & AT91C_ADC_ENDRX) == AT91C_ADC_ENDRX)
{
AT91C_BASE_ADC->ADC_RNCR = AD_DATA_BUFFER_SIZE;
}
}
Цитата(Genadi Zawidowski @ Dec 8 2011, 11:09)

Готовый проект возмите - там в файле hardware.c начиная с функции adc_initialize().
Спасибо буду смотреть и сравнитвать со своим, правда я делал с помощью
функций из папки at91lib, придется в них залесть