Magna Concursos

O código a seguir refere-se à rotina de interrupção invocada em um microcontrolador toda vez que é finalizada uma conversão analógica-digital de 16 bits. As duas últimas linhas programam nos registradores OCR1B e ADMUX o instante do início da conversão.

/* rotina ISR de interrupção do ADC */
ISR(ADC_vect){
/* composição do valor lido do ADC */
adcresultado = ADCL; // byte menos significativo
(lsb)
adcresultado = adcresultado | (ADCH<<8); // msb
sensor[canal] = adcresultado;
canal++; if ((canal&0x07)==0) canal=0; // canal próxima
conversão
OCR1B = 15000 + (canal*1000); // agenda próxima
conversão
ADMUX = (1<<REFS0)+canal; // programa canal de conversão
}

Assinale a opção que indica o número de canais analógicos utilizados no rodízio de aquisições.

 

Provas

Questão presente nas seguintes provas