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?