Körperkrämer
19.04.2008, 18:32
tach allesamt,
Ich versuche gerade mit einem mega8 in Bascom eine schaltung zu realisieren, die standartmässig die rote LED auf meinem myAVR Board leuchten lässt und sobald man den Taster drückt, für die Dauer des Drucks die rote abschaltet und die grüne erleuchten lässt.
Das will ich über die externen interrupts realisieren.
Hier mal mein Code, das problem schildere ich unten:
$regfile = "m8def.dat"
$crystal = 8000000
Dim Pressed As Bit
Pressed = 0
Config Int0 = Falling 'INT0 wird aufgerufen, sobald der Taster gedrückt wird.
Enable Interrupts
Enable Int0
Config Portd = Input
Portd = &B11111111 ' Pull-up Widerstatände aktivieren
Config Portb = Output
Portb = &B00000001 'nach reset soll rot leuchten
On Int0 Isrint0
Isrint0:
If Pressed = 0 Then
Portb = &B00000010 'grüne LED anmachen (an PinB.1)
Config Int0 = Rising
Pressed = 1
Elseif Pressed = 1 Then
Portb = &B00000001 'rote LED wieder anmachen (an PinB.0)
Config Int0 = Falling
Pressed = 0
End If
Return
Do
Loop
End
problem ist jetzt, dass statt der roten immer die grüne leuchtet, dazu leuchtet auch noch die rote standig , aber nur ganz dunkel. Wenn ich jetzt den Taster drücke, passiert nichts, außer dass abundzu einmal die rote heller aufflackert.
ich hoffe ihr könnt mir helfen, wobei mir wirklich wichtig ist, das über die interrupts zu steuern.
*Danke*
EDIT:
mir ist aufgefallen, dass WENN die rote LED mal flackert, dass dann auch gleichzeitig die grüne mit erlischt. Immerhin etwas wie es sein soll.
Ich versuche gerade mit einem mega8 in Bascom eine schaltung zu realisieren, die standartmässig die rote LED auf meinem myAVR Board leuchten lässt und sobald man den Taster drückt, für die Dauer des Drucks die rote abschaltet und die grüne erleuchten lässt.
Das will ich über die externen interrupts realisieren.
Hier mal mein Code, das problem schildere ich unten:
$regfile = "m8def.dat"
$crystal = 8000000
Dim Pressed As Bit
Pressed = 0
Config Int0 = Falling 'INT0 wird aufgerufen, sobald der Taster gedrückt wird.
Enable Interrupts
Enable Int0
Config Portd = Input
Portd = &B11111111 ' Pull-up Widerstatände aktivieren
Config Portb = Output
Portb = &B00000001 'nach reset soll rot leuchten
On Int0 Isrint0
Isrint0:
If Pressed = 0 Then
Portb = &B00000010 'grüne LED anmachen (an PinB.1)
Config Int0 = Rising
Pressed = 1
Elseif Pressed = 1 Then
Portb = &B00000001 'rote LED wieder anmachen (an PinB.0)
Config Int0 = Falling
Pressed = 0
End If
Return
Do
Loop
End
problem ist jetzt, dass statt der roten immer die grüne leuchtet, dazu leuchtet auch noch die rote standig , aber nur ganz dunkel. Wenn ich jetzt den Taster drücke, passiert nichts, außer dass abundzu einmal die rote heller aufflackert.
ich hoffe ihr könnt mir helfen, wobei mir wirklich wichtig ist, das über die interrupts zu steuern.
*Danke*
EDIT:
mir ist aufgefallen, dass WENN die rote LED mal flackert, dass dann auch gleichzeitig die grüne mit erlischt. Immerhin etwas wie es sein soll.