Hallo,
ich habe ein Problem und hoffe ihr könnt mir vielleicht helfen. Ich lasse einen mega64 mit dem 2ten HW UART über RS232 mit dem PC kommunizieren. Je nachdem was für Befehle der mega64 erhält werden entsprechende Ausgänge geschaltet. Anfangs hatte ich das Ganze folgendermaßen realisiert:
im unterprogramm Auswahl wird dann der entsprechende Befehl festgestellt und die entsprechenden Ausgänge geschaltet. Das funnktioniert auch soweit wunderbar.
Nun möchte ich allerdings immer noch eine LED blinken lassen um zu sehen ob der mega64 läuft. Gedanke: stürzt er aus irgendeinem Grund ab oder das Programm bleibt hängen, sieht man an der nichtmehr blinkenden LED das etwas nicht stimmt. Ich habe meine Hauptschleife folgendermaßen erweitert:
Leider funktioniert das Ganze so nicht wie ich mir das vorstelle: Die LED blinkt aber nachdem ich einmal etwas über RS232 geschickt habe blinkt sie nicht weiter.
Die Kommunikation funktioniert auch erst, nachdem ich Porte.0 (RXD0) z.B. mit der Spitze meines Oszis kurz auf Masse ziehe. ischarwaiting() bezieht sich vielleicht auf den ersten HW UART? mit ischarwaiting(#1) funktioniert die Kommunikation allerdings gar nicht.
Wenn ich porte.0 permanent an Masse anschließe funktioniert das Ganze auch nicht.
Ich habe schon alles mögliche ausprobiert und bin langsam mit meinem Latein am Ende. Was alles kein Erfolg gebracht hat:
porte.0 als input mit internem pullup
porte.0 als input ohne internen pulluo
porte.0 als output und auf 1
porte.0 als output und auf 0
config serialin1 = buffered, size = 20
enable interrupts
ischarwaiting(#1)
Hat vielleicht jemand eine Idee woran das liegen könnte? Oder eine Idee wie ich eine LED permanent blinken lassen kann solange das Programm läuft?
Für Hilfe wäre ich sehr dankbar
gruß
st3fan
ich habe ein Problem und hoffe ihr könnt mir vielleicht helfen. Ich lasse einen mega64 mit dem 2ten HW UART über RS232 mit dem PC kommunizieren. Je nachdem was für Befehle der mega64 erhält werden entsprechende Ausgänge geschaltet. Anfangs hatte ich das Ganze folgendermaßen realisiert:
Do
Input #1 , Empf
Empfh = Mid(empf , 1 , 2)
If Empfh = "n_" Then Call Auswahl
Loop
im unterprogramm Auswahl wird dann der entsprechende Befehl festgestellt und die entsprechenden Ausgänge geschaltet. Das funnktioniert auch soweit wunderbar.
Nun möchte ich allerdings immer noch eine LED blinken lassen um zu sehen ob der mega64 läuft. Gedanke: stürzt er aus irgendeinem Grund ab oder das Programm bleibt hängen, sieht man an der nichtmehr blinkenden LED das etwas nicht stimmt. Ich habe meine Hauptschleife folgendermaßen erweitert:
Do
If Ischarwaiting() = 1 Then
Input #1 , Empf
Empfh = Mid(empf , 1 , 2)
If Empfh = "n_" Then Call Auswahl
End If
Zahler = Zahler + 1
If Zahler >= 32000 Then Ledok = 1
If Zahler >= 64000 Then
Ledok = 0
Zahler = 0
End If
Loop
Leider funktioniert das Ganze so nicht wie ich mir das vorstelle: Die LED blinkt aber nachdem ich einmal etwas über RS232 geschickt habe blinkt sie nicht weiter.
Die Kommunikation funktioniert auch erst, nachdem ich Porte.0 (RXD0) z.B. mit der Spitze meines Oszis kurz auf Masse ziehe. ischarwaiting() bezieht sich vielleicht auf den ersten HW UART? mit ischarwaiting(#1) funktioniert die Kommunikation allerdings gar nicht.
Wenn ich porte.0 permanent an Masse anschließe funktioniert das Ganze auch nicht.
Ich habe schon alles mögliche ausprobiert und bin langsam mit meinem Latein am Ende. Was alles kein Erfolg gebracht hat:
porte.0 als input mit internem pullup
porte.0 als input ohne internen pulluo
porte.0 als output und auf 1
porte.0 als output und auf 0
config serialin1 = buffered, size = 20
enable interrupts
ischarwaiting(#1)
Hat vielleicht jemand eine Idee woran das liegen könnte? Oder eine Idee wie ich eine LED permanent blinken lassen kann solange das Programm läuft?
Für Hilfe wäre ich sehr dankbar
gruß
st3fan