так понял режима непрерывного преобразования у ат91сам7і256 -
нетеще баг при смене канала преобразования какойто мусор литит в память а потом воще незапускается код где настрой ацп и смена линиї смтр. ниже
Код
void InitADC()
{
InitTC0();
// Enable peripheral clock
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_ADC);
// Reset the controller
AT91C_BASE_ADC->ADC_CR = AT91C_ADC_SWRST;
// Write to the MR register
AT91C_BASE_ADC->ADC_MR = 0;// Clear the register
unsigned int prescal;//5MH
unsigned int startup;//20µs
unsigned int shtim; //1667ns track and hold time
prescal = (BOARD_MCK/(ADC_FREQ*2))-1;
startup =11;//[(Startup Time * ADCClock)/8]-1 = [(20 10e-6 * 5000000)/8]-1 = 11,5
shtim=6; //(HoldTime * ADCClock)-1 = (1667 10e-9 * 5000000)-1 = 7.335
AT91C_BASE_ADC->ADC_MR = AT91C_ADC_TRGEN_DIS | // Íàïèøèòå ê ðåãèñòðó Ã.
AT91C_ADC_LOWRES_10_BIT |
AT91C_ADC_SLEEP_NORMAL_MODE |
((prescal<<8)&AT91C_ADC_PRESCAL) |
((startup<<16)&AT91C_ADC_STARTUP) |
((shtim<<24)&AT91C_ADC_SHTIM);
AT91C_BASE_ADC->ADC_CHDR = AT91C_ADC_CH0 |
AT91C_ADC_CH1 |
AT91C_ADC_CH2 |
AT91C_ADC_CH3 |
AT91C_ADC_CH4 |
AT91C_ADC_CH5 |
AT91C_ADC_CH6 |
AT91C_ADC_CH7;
AT91C_BASE_ADC->ADC_CHER =AT91C_ADC_CH5;
AT91C_BASE_ADC->ADC_IDR=0xffffffff;
//Seting PDC
AT91C_BASE_ADC->ADC_PTCR=AT91C_PDC_RXTDIS|AT91C_PDC_TXTDIS;
AT91C_BASE_ADC->ADC_RPR=(unsigned int)ADCbuf;
AT91C_BASE_ADC->ADC_RCR=ADC_SIZE_BUF;
}
void StartADCSignal1()
{
//ADC from line 1
AT91C_BASE_ADC->ADC_CHDR =AT91C_ADC_CH5;
AT91C_BASE_ADC->ADC_CHER =AT91C_ADC_CH4;
TakesADC=true;
AT91C_BASE_ADC->ADC_RPR=(unsigned int)ADCbuf;
AT91C_BASE_ADC->ADC_RCR=ADC_SIZE_BUF;
TC_Start(AT91C_BASE_TC0);
while(TakesADC)
AT91C_BASE_ADC->ADC_CR=AT91C_ADC_START;
}
void StartADCSignal2()
{
//ADC from line 2
AT91C_BASE_ADC->ADC_CHER =AT91C_ADC_CH5;
AT91C_BASE_ADC->ADC_CHDR =AT91C_ADC_CH4;
TakesADC=true;
AT91C_BASE_ADC->ADC_RPR=(unsigned int)ADCbuf;
AT91C_BASE_ADC->ADC_RCR=ADC_SIZE_BUF;
TC_Start(AT91C_BASE_TC0);
while(TakesADC)
AT91C_BASE_ADC->ADC_CR=AT91C_ADC_START;
}
что скажете гуру?
Сообщение отредактировал D1ma - Aug 30 2009, 17:12