Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeichen an die RS232 senden
Hallo,
ich möchte Zeichen über die RS232 am RNControl ausgeben.
Ich habe am TX und RX ein Wlan Module angeschlossen.
Jetzt muss ich um in den Datenmodus zu kommen +++ senden aber jedes Zeichen mit 500 ms verzögert.
Drei mal Print "+“ mit eine Pause von 500ms geht nicht, weil die Zeichen dann nicht in einer Zeile stehen.
Wie kann ich das machen, dass ich die Zeichen in einen Buffer schreibe und dann ausgebe?
Dank vorab
uwe
Wenn ich das richtig verstehe, mußt du den Print mit semikolon (strichpunkt) abschließen, sonst fügt er einen Zeilenvorschub ein
PRINT "+";
watims 500
PRINT "+";
watims 500
PRINT "+";
watims 500
sagt mal, ich will auch über tx/rx senden, reicht da einfach print ???
muss ich da nix konfigurieren oder sowas?
das klingt mir zu einfach ;-)
ich will mit 9600 baud über einen angeschlossenen rs485 senden, müsste ja das gleiche sein wie bei rs232 ...
(hab nen 8515 mit 11,059mhz)
Hallo Robert,
das mit dem Semikolon funzt.
Aber mein Wlan Module erkennt es nicht als Steuerzeichen.
Er versendet keine Mail wie er sollte
Hier mal mein Code
$regfile = "m32def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Print " TEST <cr><lf>"
Wait 1
Print "+";
Waitms 500
Print "+";
Waitms 500
Print "+ ";
Waitms 500
Print "<cr>";
Waitms 500
Print " <lf>"
Wait 2
Print "a";
Waitms 500
Print "t";
Waitms 500
Print "+";
Waitms 500
Print "s";
Waitms 500
Print "h";
Waitms 500
Print "o";
Waitms 500
Print "r";
Waitms 500
Print "t";
Waitms 500
Print "m";
Waitms 500
Print "a";
Waitms 500
Print "i";
Waitms 500
Print "l";
Waitms 500
Print " ";
Waitms 500
Print " T";
Waitms 500
Print " e";
Waitms 500
Print " s";
Waitms 500
Print " t";
Waitms 500
Print " <CR>";
Waitms 500
Print "<lf>";
Wait 60
mfg
Uwe
@Veit: Wenn du beim Bascom $BAUD=nnnn schreibst, konfigiert er die UART komplett. da brauchst du sonst nix spezielles zu machen.
($crystal==xxx und die Fuses müssen natürlich stimmen)
@Uwe: Ich kenn das Modul leider nicht. aber wenn du <CR> und <LF> schicken willst, solltest du sagen
PRINT
und sonst nix, Bascom schick da beides elektrisch.
(" <CR>" ist ein Text, mit dem wird er wohl nix anfangen)
Hallo Robert,
Ich gebe doch die Zeichen <cr> und <lf> mit Print aus
mfg
uwe
<cr>
das sind vier Zeichen, Kollege.
Ein "echtes" CR ist EIN byte mit dem Inhalt "&H0D"
Ein "echtes" LF ist EIN byte mit dem Inhalt "&H0A"
Schreib das so:
...
Print " t";
Waitms 500
Print
Hallo Robert,
das verstehe ich nicht....
ich möchte das hier ausgeben:
Um in den Befehlsmodus zu kommen gebe ich das aus.
+++ <cr><lf>
dann zum mail senden
at+shortmail TEST <cr><lf>
wie muss das dann aussehen?
mfg
uwe
Das gewurstel ist ja nur, weil zwischen den "+" offenbar 500mS verstreichen sollen.
Der Teil wäre dann so:
PRINT "+";
watims 500
PRINT "+";
watims 500
PRINT "+";
watims 500
PRINT
Da ich nicht glaube (?), daß er die 500 mS sonst auch immer braucht, würde ich dann probieren, ganz einfach
PRINT "AT+SHORTMAIL TEST"
(die kontrollzeichen fügt der Bascom selber ein)
probier's einfach mal
Das Modul an ein Terminal hängen zum gucken geht wohl nicht ?
(nach +++ sollt' er eigentlich eine Antwort geben, glaub ich mich zu erinnern)
Hallo Robert,
Das habe ich schon so probiert.
die 500 ms bei den + zeichen sind immer notwendig.
Es kommt auch eine Antwort auf disese ich 2 Sekunden warte.
Ich habe einen Terminal angschlossen.
Wenn ich das PRINT ausführe dann lese ich nur ein "LF" KEIN "CR".
Dieses Module ist es.
http://www.avisaro.com/html/wlan_module.html
mfg
uwe
ich hoffe ich störe hier nich zu sehr, hab auch noch ne frage dazu:
ich muss an meinen rs485 an ein gerät ein längeres kommando senden, hab das schon mit nem interface über seriell port gemacht, benutze da das programm "com terminal"
damit gehts einwandfrei
kommando:
200 1 102 240 10 10 250 255 152 201
jetz versuche ich das von meinem atmel senden zu lassen, hab nen max485 dran, setze über portc.0 = 1 den 485 auf senden, mache dann
print "200";
print "001";
usw, aber es funktioniert nicht ....
????
oder doch so?
print "200001102240010010250255152201"
Hallo Robert,
ich habs...
Es geht wie Du geschrieben hast...
Es war ein Fehler im Terminal.
Ich danke Dir....
mfg
Uwe
Hallo veit
bei mir funzt es so:
$regfile = "m32def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Print
Wait 1
Print "+";
Waitms 700
Print "+";
Waitms 700
Print "+";
Waitms 700
Print
Wait 2 ' Warten auf Antwort vom +++ Kommandomodus
Print "at+shortmail TEST TEST";
Print
Wait 60 'Zeit zum versenden der Mail
mfg
uwe
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.