AlexBi (15.10.2008 09:56, просмотров: 2716)
Почему-то не работает автоматическое сканирование входов АЦП у PIC24HJ256GP206. Что я делаю не так? // настройка АЦП
_ADON=0;
AD1PCFGL &= ~(0x3000); // set as analog
AD1CON1bits.ASAM=1; // 1 = Sampling begins immediately after last conversion. SAMP bit is auto-set.
AD1CON1bits.SSRC=0; // 000 = Clearing sample bit ends sampling and starts conversion
AD1CON2bits.CSCNA=1; // Scan Input Selections for CH0+ during Sample A bit
AD1CON3bits.SAMC=6; // Auto Sample Time bits = 6 * TAD
AD1CON3bits.ADCS=2; // TAD = 200ns
AD1CSSL=0x3000; // scan AN12, AN13
_ADON=1;
while(1)
{
unsigned i;
for(i=0; i<20; ++i)
{
do {} while(AD1CON1bits.SAMP==0);
AD1CON1bits.SAMP=0;
do {} while(AD1CON1bits.DONE==0);
buf[i]=ADC1BUF0;
}
__builtin_nop();
__builtin_nop();
__builtin_nop();
__builtin_nop();
}
На AN12 и AN13 разные напряжения, но весь массив забивается результатами, соответствующими AN12. Результат смотрю отладчиком (PICkit2). Кучка нопов в конце для точки останова, почему-то у меня останавливается не там где укажу, а на пару команд дальше.