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
Hab jetzt nochmal im Internet gesucht und herausgefunden, dass ältere
Etikettendrucker in ZEBRA angesprochen werden. Ich les mir grad ein PDF
durch(Syntax in ZEBRA). Kennt sich da einer genauer aus?
In deinem Handbuch steht aber auf S. 51 dass er PPLA spricht.
Hab aber noch nie was davon gehört. Wahrscheinlich irgendein
herstellerspezifisches Ding.
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:
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"
Ich glaub du schickst immer noch das falsche an den Drucker. Das F muss
übrigens gross sein. Kannst du dir einen String basteln aus vier Bytes
mit dem Inhalt:
0x02 0x46 0x0d 0x0a
Das entspräche dann <STX> F <CR> <LF>
Oder wenn das cr lf automatisch gesendet wird lass es weg.
Hältst du dich eigentlich daran?
Baud-Rate: 2400, 4800, 9600, 19200 und 38400.
(durch Befehl programmierbar)
Datenformat: immer 8 Datenbits, 1 Startbit und 1 Stopbit.
Parität : immer keine Parität
Handshaking : XON/XOFF sowie CTS/RTS
(Hardware-Flusskontrolle).
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.
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.
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:
Tom Z. schrieb:> In Bascom hab ich das:> $crystal = 14745600> $baud = 9600
Und hast Du auch die Fuses des AVR so gesetzt, daß der Quarzoszillator
verwendet wird? Wenn nicht, dann läuft der AVR mit einem internen
RC-Oszillator und einer ganz anderen Frequenz.
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 ;-)
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
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 ;-)
so sieht der code in Bascom aus.
Danke an alle.
Jetzt muss ich nur noch schauen, wie ich drucken kann.
PS: <STX>T (Print test pattern) geht auch
MfG Tom
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