pebisoft
29.08.2005, 14:50
wie kann man in der interruptroutine 2 adcwerte abfragen und in eine variable speichern. zur zeit frage ich "mux0" ab,ist der 2. adcpin.
und wie kann man zb pin8 abfragen da muss ja irgendwie mux0 und ein anderer mux.... als "or" hintereinander gesetzt werden.
so sieht es zb bei winabr-c aus: ADCchannel_8 ADMUX= _BV(MUX2) | _BV(MUX1) | _BV(MUX0)
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 19200
Dim Adhi As Byte
Dim Adlow As Byte
Dim Adcergebnis As Word
Dim Radzaehler As Byte
Dim Toggle_rad As Byte
Disable Interrupts
Adcsra.aden = 1
Adcsra.adate = 1
Adcsra.adie = 1
Adcsra.adsc = 1
Adcsra.adps0 = 1
Adcsra.adps1 = 1
Adcsra.adps2 = 1
Admux.refs0 = 1
Enable Interrupts
Radzaehler = 0
Toggle_rad = 0
On Adc Onadc
Do
Waitms 1
Print Radzaehler
Loop
Onadc:
Admux.mux0 = 1
Adcsra.adsc = 1
Adlow = Adcl
Adhi = Adch
Adcergebnis = Adhi * 256
Adcergebnis = Adcergebnis + Adlow
If Adcergebnis > 400 And Toggle_rad = 1 Then
Incr Radzaehler
Toggle_rad = 0
End If
If Adcergebnis < 100 And Toggle_rad = 0 Then
Incr Radzaehler
Toggle_rad = 1
End If
Return
End
mfg pebisoft
und wie kann man zb pin8 abfragen da muss ja irgendwie mux0 und ein anderer mux.... als "or" hintereinander gesetzt werden.
so sieht es zb bei winabr-c aus: ADCchannel_8 ADMUX= _BV(MUX2) | _BV(MUX1) | _BV(MUX0)
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 19200
Dim Adhi As Byte
Dim Adlow As Byte
Dim Adcergebnis As Word
Dim Radzaehler As Byte
Dim Toggle_rad As Byte
Disable Interrupts
Adcsra.aden = 1
Adcsra.adate = 1
Adcsra.adie = 1
Adcsra.adsc = 1
Adcsra.adps0 = 1
Adcsra.adps1 = 1
Adcsra.adps2 = 1
Admux.refs0 = 1
Enable Interrupts
Radzaehler = 0
Toggle_rad = 0
On Adc Onadc
Do
Waitms 1
Print Radzaehler
Loop
Onadc:
Admux.mux0 = 1
Adcsra.adsc = 1
Adlow = Adcl
Adhi = Adch
Adcergebnis = Adhi * 256
Adcergebnis = Adcergebnis + Adlow
If Adcergebnis > 400 And Toggle_rad = 1 Then
Incr Radzaehler
Toggle_rad = 0
End If
If Adcergebnis < 100 And Toggle_rad = 0 Then
Incr Radzaehler
Toggle_rad = 1
End If
Return
End
mfg pebisoft