PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Reyax RYL896 FUNK



DrHase
23.11.2018, 09:13
Hallo an die Rund,
zum Projekt:

- Funkverbindung von 2 µC (2x arduino clone) per Reyax (UART) http://reyax.com/wp-content/uploads/2018/01/RYLR896_EN.pdf http://reyax.com/wp-content/uploads/2018/01/REYAX-Lora-AT-COMMAND-GUIDE_EN.pdf
- Für das erste LEDs an Ports schalten Portb.5 und d.4
- Alles in Bascom geschrieben

Ich denke wenn ich die Quelltexte einhänge macht es Sinn.

TRANSCIVER:


'------------------NANO------------------------
$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
'-----------------------------------------------
$baud = 115200 'default baud vom Rylr896

Config Portb.5 = Output 'LED um Aktivität zu sehen

Do

Print "AT+SEND=111,8,Testing!" ' sendebefehl vom Rylr896 an funkmodul 111; 8 ZEICHEN sollen gesendet werden ; und die zeichen
Toggle Portb.5
Wait 2
' im ca 2 Sekundentakt
Loop



'+RCV=100,8,Testing!,-49,54<\r><\n> 'Das kommt aus dem Funkmodul 111

RECIVER:

'------------------NANO------------------------
$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
'---------------------------------------------

Baud = 115200 'default baud vom Rylr896
Config Input = Crlf , Echo = Cr

Config Portb.5 = Output 'LEDS
Config Portd.4 = Output

Dim Uartin As String * 30
Dim Instring(20) As String * 10
Dim Bcount As Byte

Dim I As Byte

Do
Input Uartin , Noecho

Gosub Spliting

If Instring(3) = "Testing!" Then
For I = 1 To Bcount
Instring(i) = " "
Next I
Toggle Portd.4
Toggle Portb.5
End If
Loop

Spliting:

Bcount = Split(uartin , Instring(1) , ",")

Return

End
'* +RCV=100,8,Testing!,-54,53

'+RCV=100,8,Testing!,-50,51<\r><\n>
'+RCV=100,8,Testing!,-49,54<\r><\n>



Nun zum Problem, wenn ich "+RCV=100,8,Testing!,-50,51<\r><\n>" per Terminal, HTERM eingebe gehen die LEDS an/aus. Wenn ich aber das Funkmodul einstecke, dann bleibt das Programm ab input hängen(glaube ich).
Der Datensatz der unterm Code steht ist der mitgeschnittene Datensatz aus dem Funkmodul.

Das Beispielprogramm in C funktioniert soweit. Also hängt es nicht mit der Verkabelung zusammen. (TX auf TX zB.) Oder die Pegel der Datenleitung
Liebe Grüße

Searcher
23.11.2018, 10:26
Hallo,
nur eine Vermutung, da ich keine Erfahrung mit Funkmodulen habe. Das Problem hängt irgendwie mit CR LF zusammen.

Die 8 in
Print "AT+SEND=111,8,Testing!"
ist Anzahl der Zeichen in Payload und umfaßt damit nur die 8 Zeichen von Testing!. Vielleicht wird deshalb das CR CF nicht mehr vom Empfangsmodul weitergegeben. Das INPUT wartet darauf und macht deshalb nicht weiter:-k

Gruß
Searcher

DrHase
23.11.2018, 10:52
Mahlzeit, danke für das Kopfzerbrechen.

Die 8 beziehen sich wirklich nur auf die Payloadgröße. Hab ich auch schon gedacht... Der Funkempfänger gibt aber als Ausgabe immer Befehl (zB. +RCV=??????????? oder +ERR=13) und <CR LF> als Abschluss aus.