Hallo zusammen,
und das Neue Jahr fängt nicht besser an, als das alte aufgehöhrt hat.
Ich hoffe Euer Start ist besser als meiner.
Problem: Mit dem RN-Minicontrol will ich am PC eingegebene Texte an das RN-Funk übergeben und gleichzeitig am PC den Empfang kontrollieren. Damit ist die RS232 für den PC erforderlich, das RN-Funk muss über eine Soft UART angesprochen werden (der Max ist beim RN-Runk entfernt).
Auf der anderen Seite der Funkstrecke sitzt ein RNmega128 mit Easyradio on Board, der allerdings 2 UARTs hat und damit an dem 2ten PC problemlos funktioniert.
Die Soft UART des RN-Minicontrol kann problemlos senden (es kommt alles am RN128 bzw. 2ten PC an), aber der Empfang ist mal da mal nicht, mal verstümmelt, mal genau 2 Zeichen (je nach Code Version und nicht klar reproduzierbar).
Getestet habe ich verschiedene Ports (auch PD3 mit INT1), in zig Kombinationen mit Buffer und ohne .....
Getestet habe ich auch eine Verbindung vom Funk (in) eine Kabelverbindung auf PD3 (--> Int1 Interrupt) was gar nicht funktioniert hat....
Ebenso hatte ich die Empfangsabfrage im Int1 --> da kam mal was ....
Könnt Ihr bitte mal drüber schauen --> ich bin mittlerweile betriebsblind
Zusatzfrage: Kann ich in das RN-Minicontrol einfach einen ATmega162 einbauen? Der hätte 2 UARTs.Code:'############################################################## ' 'Aufgabe: ' Lese alle Bytes vom Funk und gebe diese auf RS232 aus ' Lese alle Bytes vom PC via RS232 und gebe diese auf Funk aus ' ' ' Verkabelung: ' JP5 --> Pin 5 (PD4) mit dem Funkmodul TTL RS232 OUT verbunden ' --> Pin 4 (PB4) mit dem Funkmodul TTL RS232 IN verbunden ' ' RS232 --> PC Kabel ' '############################################################## $regfile = "m168def.dat" 'Prozessor $crystal = 16000000 'Quarzfrequenz $hwstack = 32 $framesize = 32 $swstack = 32 $baud = 19200 'Für RS232, für Funk in Soft UART angegeben On Int1 Int1_int 'Wenn PD3 den Status ändert. Für Soft UART benötigt? Enable Int1 Config Int1 = Falling 'Auch Rising schon getestet Enable Interrupts Dim Funkempfang As Integer Dim D As Integer Dim X As Byte Dim S As String * 1 Dim Sendetext As String * 30 Dim Empfangtext As String * 30 Config Serialout = Buffered , Size = 100 Config Serialin = Buffered , Size = 100 ' ---------- Ende der Deklarationen ----------------------------------------- Print "Warte ich boote ..." ' Ausgabe am PC funktioniert gut Open "comd.4:19200,8,n,1" For Output As #1 'jp5 Pin 5 linkester bzw. außen Open "comb.4:19200,8,n,1" For Input As #2 'jp5 Pin 4 zweit linkester bzw. innen D = 1 Funkempfang = 0 Wait 3 Print "Los geht's" Do Print " Schleife = " ; D 'Geht auf RS232 und PC ' ---------- RS232 abfragen und über Funk Ausgeben ------------------------ Sendetext = "" While Ischarwaiting() <> 0 ' Wird vom RS232 gelesen S = Inkey() If S <> "0" Then Sendetext = Sendetext + S End If Wend If Len(sendetext) > 0 Then Print "Sende jetzt: " ; Sendetext Print #1 , Sendetext 'Geht gepuffert zum Funk Print #1 , Len(sendetext) End If ' ---------- bis hierhin funktioniert alles ------------------------ X = Inkey(#2) While X <> 0 Print "Hurra X= " ; Printbin X Print X = Inkey(#2) If X = 0 Then Print "Ende" End If Wend D = D + 1 Wait 3 Loop End Int1_int: Return
Danke.
Gruß
Burkhard








Zitieren


Lesezeichen