Hallo zusammen,
Ich möchte einen UART Interrupt für meinen rnmega2560 programmieren.
Ich habe bisher mit einem Atmega8 auf einem myAVR MK2 programmiert,
da funktioniert folgender Code ohne Probleme:
Code:
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 19200
On Urxc Datenabruf
Enable Urxc
Enable Interrupts
Config Pind.5 = Output
Led Alias Portd.5
Dim B As String * 20
Wait 1
Print "Start"
Do
Print "test"
Toggle Led
Waitms 500
Loop
End
Datenabruf:
Input B
Waitms 200
Print B
Return
Nach einiger Recherche müsste der Code eigentlich so an den Atmega2560 angepasst werden:
Code:
$regfile = "m2560def.dat"
$crystal = 16000000
$baud = 19200
On Urxc2 Datenabruf
Enable Urxc2
Enable Interrupts
Config Pind.5 = Output
Led Alias Portd.5
Config Com2 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com2:" For Binary As #2
Dim B As String * 20
Wait 1
Print #2 , "Start"
Do
Print #2 , "test"
Toggle Led
Waitms 500
Loop
End
Datenabruf:
Input #2 , B
Waitms 200
Print #2 , B
Return
Jetzt hab ich ich schon "On Urxc" mit verschiedenen Zahlen ausprobiert, brachte aber kein Ergebnis.
Wenn ich in die Hauptschleife ein "Waitkey(#2)" einfüge, empfängt der µC auch die Daten springt aber nicht
in die Interrupt Routine. Für das eigentliche Programm brauche ich aber die Interrupt Routine.
Die Verbindung an sich funktioniert also, Senden und Empfangen funktioniert. Daher schließe ich einen
Hardware Fehler eigentlich aus.
Hat einer vlt. ne Idee was ich falsch mache oder wo ich einen Fehler gemacht habe?
Danke schon mal für eure Hilfe
Gruß
Curzon161
Lesezeichen