Forum: Mikrocontroller und Digitale Elektronik Senden PC <-> Controller


von Thomas H. (datatom)


Lesenswert?

Hallo zusammen,

ich habe beim Senden und Empfangen mit dem RN-Mega2560 folgendes 
Problem: Ich sende Daten vom PC zu Controller  und gebe die gleichen 
Daten wieder zurück vom Controller zum PC. Ich benutze Putty und Bascom. 
Ich habe im Bascomprogramm eine Variable erstellt:
1
 Dim Eingabe As String * 25
 . Dort lese ich per Input die ankommenden Daten ein:
1
 Input #1 , Eingabe
 und gebe sie wieder zurück:
1
 Print #1 , Eingabe

Sobald ich auf der PC-Tastatur eine Taste drücke wird der entsprechende 
Wert zum Controller geschickt und der schickt diesen Wert wieder zurück 
und der wird dann auf der Konsole ausgegeben.  Das können max. 25 
Zeichen sein, dann ist die Variable auf dem Controller voll. Wenn ich 
dann Enter drücke wird noch einmal der gesamte String auf der Konsole 
angezeigt.

Noch einmal in Kurzform: Ich sende erst jedes Zeichen einzeln und nach 
dem Drücken von Enter wird noch einmal der gesamte String gesendet.


Das möchte ich verhindern. Ich möchte erst senden nach dem ich Enter 
gedrückt habe. Gibt es da eine Möglichkeit?

Vielen Dank im Voraus.

Grüße

datatom

von Winnie (Gast)


Lesenswert?

Und wo ist der Rest vom Programm?

von Cyblord -. (cyblord)


Lesenswert?

BASCOM Code ist einfach sooo schlimm....

von ernst (Gast)


Lesenswert?

cyblord ---- schrieb:
> BASCOM Code ist einfach sooo schlimm....

Ja, genau. Wenn Du nicht schwimmen kannst, ist die Badehose schuld!

von Thomas H. (datatom)


Lesenswert?

Hier das ganze Programm:-)
1
$regfile = "m2560def.dat"
2
$hwstack = 82                                               '80
3
$framesize = 68                                             ' 64
4
$swstack = 68                                               '44
5
6
7
$crystal = 16000000                                         'Quarzfrequenz
8
$baud = 19200
9
10
11
Config Pind.5 = Output
12
Led Alias Portd.5
13
14
Dim Eingabe As String * 25
15
Dim Ausgabe As String * 25
16
17
Config Porth = Output
18
Out1 Alias Porth.0
19
Out2 Alias Porth.1
20
Out3 Alias Porth.2
21
Out4 Alias Porth.3
22
Out5 Alias Porth.4
23
Out6 Alias Porth.5
24
Out7 Alias Porth.6
25
Out8 Alias Porth.7
26
27
Config Com1 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
28
Config Com4 = 19200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
29
Open "com1:" For Binary As #1                               'RS232
30
Open "com4:" For Binary As #4                               'USB Buchse
31
32
Do
33
34
  Input #1 , Eingabe
35
  Led = 1
36
  Waitms 200
37
38
  Ausgabe = Eingabe
39
40
  Print #1 , Eingabe
41
  Led = 0
42
  Waitms 200
43
44
Loop
45
46
47
End

von avrGerd (Gast)


Lesenswert?

Das musst Du dann auch so im Terminal einstellen.

avrGerd

von Karl H. (kbuchegg)


Lesenswert?

Thomas Holländer schrieb:

> Noch einmal in Kurzform: Ich sende erst jedes Zeichen einzeln und nach
> dem Drücken von Enter wird noch einmal der gesamte String gesendet.
>
>
> Das möchte ich verhindern.

Dann schalte das lokale Echo am PC ab.
BZw. das BASCOM Echo mittels  ECHO OFF

http://halvar.at/elektronik/kleiner_bascom_avr_kurs/uart_rs232_vom_computer/

von Thomas H. (datatom)


Lesenswert?

Ok bei Bascom hab ichs mit echo off gemacht. Wie mach ichs am PC?

von Klaus 2. (klaus2m5)


Angehängte Dateien:

Lesenswert?

In PuTTY -> Konfiguration -> Terminal -> Line discipline options -> 
Local echo -> Force off

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.