hallo hatte damals mal ein program geschrieben für den radencoder.
wollte die langsame getadc von Bascom nicht nutzen. vielleicht kannst du ihn weiterverwenden. wenn du onadc nutzen tust, nimm am besten auch die direkten avr-ansprechregister.
mfg pebisoft
Code:
$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 !! ist adcport pina1 , ohne mux ist pina0
Adcsra.adsc = 1 !! startet das auslesen
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
Lesezeichen