Jag försöker läsa av ett värde via ADC på min Atmega168, men jag vet inte riktigt hur det ska fungera.
Jag skriver såhär:
Kod: Markera allt
.ORG ADCCaddr ;Avbrottsvecktor för ADC
rjmp Ultra
-------------------------------------------------------------------------------------------------------------
ldi temp, 0b00100101 ;ADC - AREF(Internal Vref turned off), Left adjusted, ADC5
sts ADMUX, temp
ldi temp, 0b11001110 ;ADC - ADENable, ADStartConversation, ADInterruptEnable...
sts ADCSRA, temp ;...ADPrescalerSelectBits 110 = System clock/64 to ADC
sei
-------------------------------------------------------------------------------------------------------------
Ultra:
ldi adc_data, ADCH
reti
Enligt databladet och en bok som jag har så ska man skriva så och då ska det bli såhär: "This starts the process so the ADC interrupt will occur at the end of the first conversion."
Compilatorn ger inga varningar och det går att stega sig genom programmet, men Interruptet inträffar aldrig.
Säkert något uppenbart fel som jag har gjort. Kan någon vänlig själ hjälpa mig?