Nabend,
ich benutze einen Mega32 AVR und möchte damit das Signal von meiner Lichtschranke auswerten. Mit Assembler funktionierts schon, allerdings krieg ich da das LCD nicht zum laufen und die LEDs reichen nichtmehr aus. Also habe ich es mit Bascom Probiert:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
Config Portd = Input
Config Portc = Output
Dim Zahler As Integer
On Int0 Unterbrechung
Config Int0 = Falling 'Interrupt 0 bei H/L-Flanke auslösen
Enable Int0 'Externen Interrupt 0 einschalten
Enable Interrupts 'Interrupts global zulassen
Do 'Hauptschleife
Loop
'---------------------------------------------------------
Unterbrechung: 'Int0-Routine
If Pind.3 = 0 Then
Incr Zahler
Else
Decr Zahler
End If
Return
Bei einem Wechsel von High auf Low soll die Interruptroutine "Unterbrechung" aufgerufen werden, die dann etscheidet was weiter zu tun ist. Doch soweit kommt es nicht, denn Bascom meldet beim Kompilieren:
"Error: 219 Line: 11 INT0-INT3 are always low level triggered in the MEGA"
Was meiner Meinung falsch ist, denn Assembler kann den Intterupt ja auch bei einer H/L Flanke auslösen... Was soll ich denn mit einem Low Level Interrupt? Meint der das ernst, oder verstehe ich diese Fehlermeldung falsch?
Lesezeichen