Jag har funderat på olika sätt att "parallellt" läsa av ett antal ADC ingångar i bestämda intervaller.
Då detta inte riktigt går så får man köra detta sekventiellt. Men hur brukar ni göra är ni ska ha in flera ADC värden?
För jag själv brukar ha en "trigger-timer" som bestämmer när den ska köras och sedan lite kod i ADCns ISR som får den att automatiskt cykla genom alla ingångar den ska läsa av.
Halvdan PSUEDO-kod (inte riktigt såhär jag brukar göra det, men metoden stämmer iaf):
Kod: Markera allt
//Säg att vi ska läsa av ADC0, 1 och 2. ADC_MUX = 0 vid initialisering
ADC_VALUES[3] = {0}
TIMER1_ISR: // Oftast fixar hårdvaran detta, men för förståelsens skull får det vara med
ADC_START_CONVERSION = 1
ADC_ISR:
static i = 0
ADC_VALUES[i++] = ADC_RESULT
ADC_MUX = i
IF i > 2 THEN:
i = 0
ADC_MUX = 0
ELSE
ADC_START_CONVERSION = 1
Det skulle vara kul och se hur folk brukar göra detta.
