Forum: Mikrocontroller und Digitale Elektronik Mega8, Bascom, RS232-Eingabe funzt nur einmal


von Strom S. (t4b)


Angehängte Dateien:

Lesenswert?

Mahlzeit!

Ich habe da so ein Problem mit einem Basic-Programm. Aber vorher erstmal 
die angestrebte Funktion:
Ein alter Barcodeleser soll einen erkannten Code an eine SPS 
übermitteln. Der Barcodeleser kann mit der vorhandenen 
RS232-Schnittstelle nicht so ohne Weiteres an die SPS angeschlossen 
werden. Also kommt ein ATMega8 da zwischen. Der Mega8 speichert den 
Barcode zwischen, wartet auf ein "Freigabe-Signal" von der SPS und gibt 
den Code dann in einem reinen und formlosen Impulssignal an die SPS 
(Barcode z.B. 114 => 114 Impulse an die SPS).

Das angehängte Programm funktioniert erstmal. ABER nur einmal! Der 
Controller erhällt den Barcode und kann ihn auch weitergeben. Kommt aber 
der nächste Barcode vom Lesegerät, so erhält der Controller nur eine "0" 
(Anzeige im Display!).

Schließe ich statt des Lesegerätes das HyperTerminal von Windoof an, 
dann klappt es immer (also auch mit dem 3'ten, 4'ten, ...Code)

Vielleicht hat hier ja jemand eine Idee.

Gruß
Ingo

von Philipp S. (philipp)


Lesenswert?

Wenn es mit dem Daten vom Terminalprogramm geht, ist ein Fehler im Code 
ja eher unwahrscheinlich.

Und wenn Du das Lesegerät ans Hyperterminal anschließt? Sehen dann der 
zweite und die folgenden Bytes richtig aus?

von Strom S. (t4b)


Lesenswert?

Das Lesegerät läuft am HyperTerminal auch ohne Probleme.

von Tobias H. (Gast)


Lesenswert?

nimm mal das Programm "COM Terminal" und schau, was der Barcode Leser 
ausgibt. Vielleicht sendet der ein anderes "endzeichen" am Ende des 
Barcodes als du erwartest? Dies lässt sich mit dem HyperTerminal 
schlecht feststellen. COM Terminal gibt dir die Daten unformatiert aus 
und daher kannst du auch die Sonderzeichen erkennen.

von Strom S. (t4b)


Lesenswert?

So, COM Terminal erzählt mir, dass nach den eigentlichen Barcode-Ziffern 
noch zwei Zeichen übertragen werden:

1. Dez. 13  Hex. 0D (Carriage return)
2. Dez. 10  Hex. 0A (LineFeed)

Also zum Beispiel für Barcode 123:
49
50
51
13
10

Sende ich mit COM Terminal eine 123, dann kommt dabei folgendes raus:
49
50
51
13
10
10   (ja, 2x 10. Warum auch immer...?)

UND: beim zweiten Senden mit COM Terminal bekomme ich in der µC-Anzeige 
wieder eine "0" !!!
Also wo ist der Unterschied zwischen
Lesegerät/COM Terminal <=> HyperTerminal ????

von Strom S. (t4b)


Angehängte Dateien:

Lesenswert?

Nur für's Protokoll:        :)

Es funktioniert! Ich habe dann einen anderen Weg eingeschlagen

     ischarwaiting()
und
     clear serialin
(wen es interessiert: siehe Anhang)


Vielen Dank!

Grüße
Ingo

von Jens (Gast)


Lesenswert?

Hallo,

ich sehe du hast einen Barcodeleser an einen Microcontroller 
angeschlossen?

Ich hatte nun auch vor einen Barcodescanner an einen Mikrocontroller 
anzuschliessen, der dann den gelesenen Code mit einem gespeicherten 
vergleicht und dann ein Signal ausgibt ob dieser richtig oder falsch 
ist.

Ist es schwer einen Scanner direkt an einen Mikrocontroller 
anzuschliessen???

Alles was man so findet ist ja meistens für den PC mit irgend welcher 
Software.

Hast du einen speziellen genommen? Kann man die einfach über RS232 
ansprechen und der Scanner sendet dann einfach den Code?

Wäre nett wenn du mir ein paar Infos geben kannst, wie man am besten so 
ein Projekt angeht (Welcher Scanner(Soll bei mir ein Festerscanner sein 
ohne das man noch ein Knopf zum scannen drücken muss), welcher 
Mikrocontroller (geht jeder dann mit RS232?) und wie die Kommunikation 
zwischen Scanner und Mikrocontroller ist (muss ein Protokoll geschrieben 
werden?))

Vielen Dank, wenn du mir da ein paar Infos geben kannst.

Gruß
Jens

von Strom Schlag (Gast)


Lesenswert?

Hi Jens.

Den Scanner den ich benutzt habe war schon etwas aeltern Baujahrs. Ich 
bin zur Zeit noch im Urlaub. Wenn ich wieder zurueck bin, kann ich dir 
mehr erzaehlen...

Bis dahin
T4B

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.