Hat keiner eine Idee?
Dann habe ich folgenden Code: (ohne Standard-Anweisungen)
Aber selbst dann tut sich gar nichts.Code:Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung Config Porta = Input 'Port A als Eingang setzen Config Portc = Output 'Port C für LED's setzen Porta. = 1 'Pullup-Wiederstände von Port A ein Do ' Abfrageschleife If Pina.5 = 1 Then Portc.1 = 0 Else Portc.1 = 1 End If Loop
Hat keiner eine Idee?
Der Punkt nach Porta gehört da nicht hin.Zitat von Jimmy23
Grüße
Thomas
Habe ich geändert, tut sich trotzdem nichts.
Anscheinend ist der Chip wohl kaputt, bei RS232 spinnt er ebenfalls, die Print-Ausgabe funktioniert nur wenn RX von RN-Control an TX von RNKeylcd und umgekehrt angeschlossen ist und selbst dann werden nur die ersten 3 Zeilen des Displays benutzt.
Das gehört so. Tx sendet an Rx. Das bedeutet wenn du vom µC zum Display etwas sendest. Der µC sendet die Daten vom Tx (transmit), das Display empfängt die Daten beim Rx (receive). Deswegen gehört Tx und Rx zusammengeschlossen.funktioniert nur wenn RX von RN-Control an TX von RNKeylcd und umgekehrt angeschlossen ist
MfG Hannes
Hallo,
Bitte helft mir, ich habe ein problem mit RN-Funk und habe diese Woche meinen Jugend forscht-Wettbewerb. Ich versuche so viele Informationen wie möglich zu geben.
Danke!
Ich habe eine Funkverbindung über RN-Funk mit EasyRadio-Modul an RN-Control und RN-Mega128 Funk aufgebaut.
RN-Control hat per "print" Daten gesendet und RN-Funk sie mit "input" entgegenommen und auf einem Display angezeigt.
Dann tat allerdings plötzlich nichts mehr, sobald ich RN-Funk und RN-Control anschaltete hing sich RN-Mega128 in der Empfangs-Routine auf.
Ich habe dann versucht den Fehler einzukreisen und habe das Display direkt an RN-Control angeschlossen, und die Daten kamen an.
Dann habe ich ein Print-Programm für RN-Mega128 geschrieben und das Display an RN-Control gehängt, wo allerdings nichts ankam.
Ich habe den input-Befehl dann in eine ischarwaiting-Funktion verpackt und erneut getestet. Ergebnis: Das Programm geht in die Funktion (es kommt also was an) und hängt sich dann wieder auf. Wenn ich RN-Funk ausschalte läuft es imemr weiter durch, die Ischarwaiting-Funktion ist also nicht erfüllt.
Also habe ich die Max232-Pegelwandler auf beiden Boards ausgetauscht und den RS232-Ausgang nachgemessen.
Ergebnis: zwischen GND und einem der beiden Äußeren liegen 7,6 V an, zwischen GND und dem anderen 8,2 V und zwischen den beiden Äußeren ebenfalls 8,2 V. Die Baudraten sind überall auf 19200 eingestellt, das Kabel habe ich mehrfach getauscht. Die Jumper für das Easyradio-Modul sind ebenfalls gesteckt.
Bitte helft mir!
Hi,
du könntest erstmal schauen ob die Daten übertragen werden also ob sie
an den jeweiligen Pins ankommen (Oszi o.ä.). Weiterhin solltest du beachten,
das Input so lange wartet bis was ankommt, d.h. wenn nichts ankommt bleibt
der Controller an der Stelle "hängen". Dies kann man entweder mit
Inkey + Polling (also permanenten abfragen) oder per Uart-Interrupt
umgehen.
Grüße Furtion
Hallo Furtion,
Ich benutze zur Überprüfung die Ischarwaiting-Funktion mit anschließendem, Piep. Wenn ich RN-Funk nicht anhabe, läuft er durch, wenn es an ist, bleibt er hängen. Anscheinend kommt also etwas an, aber das nehmen dieser daten bereitet ihm Probleme. Aber welche?
Der String ist auf ein Zeichen eingestellt, dort kann er nicht warten, da durch die Ischarwaiting-Funktion ja sichergestellt wird, dass mindestens ein Zeichen da ist.
Wenn ich das ganze andersrum mache, also RN-Mega128 sendet und RN-Funk + Display empfängt, tut alles einwandfrei.
Ich habe nochmal das Programm für RN-Mega128 angehängt:
GrußCode:$regfile = "m128def.dat" ' Bei Mega 128 " $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 16000000 'Quarzfrequenz $baud = 19200 'Baudrate für Funkmodul $baud1 = 19200 'Baudrate für MAX Config Ping.0 = Output 'Spannung an LCD aktivieren Lcdpower Alias Portg.0 Config Pine.2 = Output Rdy_hostempfangsbereit Alias Porte.2 'Auf Low setzen wenn Empfangsbereit für Daten vom Funkmodul Config Pine.5 = Input Bsy_funkmodulsendebereit Alias Porte.5 'Ist Low wenn Funkmodul frei zum senden Open "com2:" For Binary As #2 'Ausgabe über zweite serielle Schnittstelle (MAX) ' --------------------------------------------------- Sound Portg.2 , 450 , 450 Sound Portg.2 , 450 , 350 Sound Portg.2 , 450 , 450 Sound Portg.2 , 450 , 350 Do Dim Incoming_data As String * 1 Print #2 , "hallo"; Rdy_hostempfangsbereit = 0 If Ischarwaiting() = 1 Then Input Incoming_data Noecho Print #2 , "daten:"; Sound Portg.2 , 450 , 350 Print #2 , Incoming_data; End If Sound Portg.2 , 450 , 350 Wait 1 Loop
Jimmy
Hi,
probier das mal mit inkey() bzw. waitkey() also:
Wenn du einen String sendest musst du dann auf ein chr(13) prüfen.Code:Dim I as Byte If Ischarwaiting() = 1 Then I = Inkey() Print #2 , I End If
Es kann auch sein, wenn du das in der Senderoutine weglässt, dass es
sich dann aufhängt z.b:
Sender: Print "Hallo";
Empfänger: Input I
Sollte sich aufhängen weil wie gesagt auf chr(13) (";" hebt das ja auf)
geprüft wird.
Grüße Furtion
Wieso prüft er auf ein Chr(13)?
Ich dachte er prüft nur wenn ich serial in = buffered....bytematch = x mache?
Könnte hier nicht das Funkmodul defekt sein?
Lesezeichen