Etikettendrucker OS-214 mit AVR ansteuern per RS232 (Bascom)

#2501488
Lesenswert?

Hallo,

ich möchte den Drucker OS-214 mit einem AVR per UART ansteuern.
http://duotecsysteme.de/shop/pub/OS-203_2x4_Handbuch_de.pdf

Als Hardware habe ich das Pollin Board. Den AVR hab ich auf externen 
Quarz mit 14,7456mhz gestellt. Die Hardware ist nicht das Problem, da 
alle Zeichen richtig ankommen.

Wenn ich jetzt als Test mal das an den Drucker schick, dann blinkt die 
Power LED, dh. zB: (laut Handbuch) Serieller E/AFehler.
1
$crystal = 14745600
2
$baud = 9600
3
Config Portd.5 = Output
4
Portd.5 = 1
5
Print "54:65:73:74"
6
Toggle Portd.5
7
End

Was muss ich an den Drucker schicken, damit er irgentwas druckt. Wie 
wähle ich eine Font aus?

Bascom schickt doch CR LF hinterher oder?

Kann mir jemand bitte auf die Sprünge helfen?

Danke

MfG Tom
#2501743
Lesenswert?

olaf schrieb:
> ....einfach mal bei der kommunikation mitlauschen wenn er am pc hängt?
hab ich mir auch schon gedacht, nur muss ich noch die passende Software 
finden. Da ich nur den Drucker, ohne weiteres zubehör, bekommen hab.


Danke Johannes.

wenn ich als Beispiel: <STX>F (Feed a  page) sende passiert gar nix.

Diese Schreibweisen hab ich schon probiert:
1
Print "<STX>F"
oder:
1
Print "02H"
2
Print "F"
3
Print "0d"
4
Print "0a"
oder:
1
Print "02HF0d0a"
oder:
1
Print "<STX>F<CR>"

Gleiches Problem wie vorher.
#2501762
Lesenswert?

Tom Z. schrieb:
> wenn ich als Beispiel: <STX>F (Feed a  page) sende passiert gar nix.

Deine Idee war schon richtig, STX ist nur ein Symbol, was du sendest ist 
aber nicht 02H, sondern 0x02 (ist einfach eine andere hex-Schreibweise). 
Also in diesem Fall ein Byte mit dem Wert 2, gefolgt vom Befehl.

Also probier mal 0x02 (ich weiss nicht wie man das in Bascom schreibt) 
und dann ein "F"
#2501880
Lesenswert?

so hab jetzt weiter probiert. Geht leider immer noch nicht.
Werd jetzt einfach weiter Befehle probieren.

Wegen Baudrate:
Wenn ich die Feedtaste gedrückt halte und einschalte druckt er mir die 
Config Einstellungen:

Da steht 9600 8N1

Bei der Flusskontroller hab ich jetzt nichts gemacht. Wenn ich CTS und 
RTS verbinde, dann kommt das blinken nicht, er reagiert erst gar nicht 
drauf, deswegen offen.
#2501902
Lesenswert?

Tom Z. schrieb:
> Wenn ich die Feedtaste gedrückt halte und einschalte druckt er mir die
> Config Einstellungen:
>
> Da steht 9600 8N1

Ja aber das heisst wohl dass der Drucker diese Parameter erwartet. Meine 
Frage war ob du auch so sendest.

Einfach weitere Befehle zu senden halte ich für relativ zwecklos. Beim 
Pagefeed Befehl kannst du nicht viel falsch machen weil er so einfach 
ist, und du siehst das Resultat sofort. Wenn das nicht klappt, klappt 
auch sonst nichts.

Viel Glück noch.
#2501904
Lesenswert?

Johannes G. schrieb:
> Tom Z. schrieb:
>> Wenn ich die Feedtaste gedrückt halte und einschalte druckt er mir die
>> Config Einstellungen:
>>
>> Da steht 9600 8N1
>
> Ja aber das heisst wohl dass der Drucker diese Parameter erwartet. Meine
> Frage war ob du auch so sendest.
>
> Einfach weitere Befehle zu senden halte ich für relativ zwecklos. Beim
> Pagefeed Befehl kannst du nicht viel falsch machen weil er so einfach
> ist, und du siehst das Resultat sofort. Wenn das nicht klappt, klappt
> auch sonst nichts.
>
> Viel Glück noch.

In Bascom hab ich das:
1
$crystal = 14745600
2
$baud = 9600

Danke für deine Hilfe

MfG Tom
Gast #2502041
Lesenswert?

Tom Z. schrieb:
> wenn ich das hier schicke Print "0x02f"; passier auch nichts.

...und du programmierst in bascom?
kann es da sein,das deine programmierkenntnisse noch ganz am anfang 
stehen?
ich programmiere leider nicht in bascom,aber kann mir nicht 
vorstellen,das du jetzt eine hexadezimale zahl geschickt hast,eher einen 
asciistring, welcher in deinen anführungszeichen steht,oder?
du solltest aber ein steuerzeichen schicken und das liegt nun mal 
ausserhalb der normalen asciizeichen zur darstellung unserers 
schriftsatzes!

ein suchergebnis bei google mit dem begriff "bascom hexadezimal" ergibt

print hex(hexzahl)
oder:
string=hex(hexzahl)
print string

denk nochmal drüber nach ;-)
#2502073
Lesenswert?

Hi,

wenn Du dieses <STX> senden willst (&H02 in ASCII), dann muß das so 
aussehen:
Printbin &H02
oder einfach dezimal:
Printbin 2
Bei Printbin sendet Bascom kein CR und LF hinterher sondern nur das eine 
Byte, hier mit dem Wert 2.
Print sendet immer ASCII.
Also Print "<STX>" sendet 5 Zeichen plus CR und LF.

Gruß,
Norbert
Gast #2502093
Lesenswert?

Norbert S. schrieb:

> oder einfach dezimal:
> Printbin 2


...komische programmiersprache...bei Printbin würde ich eher von einer 
binären schreibweise ausgehen,wie eben das -bin schon andeutet,also 
sozusagen binär=00001100 (was dezimal=12 und hex=0Centspricht)...aber 
dem ist wohl nicht so ;-)
#2502405
Lesenswert?

olaf schrieb:
> Norbert S. schrieb:
>
>> oder einfach dezimal:
>> Printbin 2
>
>
> ...komische programmiersprache...bei Printbin würde ich eher von einer
> binären schreibweise ausgehen,wie eben das -bin schon andeutet,also
> sozusagen binär=00001100 (was dezimal=12 und hex=0Centspricht)...aber
> dem ist wohl nicht so ;-)

Naja, Printbin heisst eben den Wert binär an die Uart schicken.
Bascom ist sehr an Dezimalzahlen orientiert und macht aus der 2 ein 
00000010 was dem Zeichen <STR> entspricht. Printbin ist aber völlig 
losgelöst von dem ASCII, deshalb auch kein LF und CR.

Edit:
Printbin &b00000010
oder
Printbin &h02
würden natürlich das Gleiche machen.

Gruß,
Norbert
#2502457
Lesenswert?

Hallo,

danke Norbert für deine Erklärung nochmal.

hab noch was gefunden im Internet zu PPLA.
http://www.teleprinter.com/soporte/Manuales/Argox/Argox%20Manual%20programacion%20impresoras%20Argox%20PPLA.pdf

Aber wie kriege ich jetzt den Drucker zum drucken?

Diese Befehle verstehe ich ja (<STX>XX) aber wie sieht es mit den 
Befehlen auf Seite 30 vom Aufbau her aus?
www.primera.com/pdfnew/cyclone_om.pdf

MfG Tom

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren