Hallo, ich schreibe mir gerade einen "Druckersimulator" auf einem AVR Mega16, der dazu dient Daten von einem Messgerät, welches seine Daten über eine LPT Schnittstelle drucken kann, mitzuloggen. Der Ablauf findet nach ganz normaler "SPP Manier" statt; also auf STROBE warten, BUSY setzen, Datenleitungen lesen, BUSY löschen und auf ACK einen Impuls ausgeben. Die Frage ist nun: Wie lange muss der ACK Impulse sein ? Sendet der Host erst wieder nachdem ACK gelöscht wurde ? Gruß Ja mann
Laut IEEE 1284 500 ns bis 10 µs. http://de.wikipedia.org/wiki/Centronics-Schnittstelle#Timing_im_Compliance_Mode_.28Drucken.29
Hallo, das kann auch stark von der Laune des Programmierers abhängen. Da es vom Timing bei Ack und Busy ohnehin mindestens 2 Varianten gab (Epson und der Rest der Welt), wurde z.B. bei C64-Userport-Druckroutinen meist nur auf das Ende von Busy gewartet und dann das nächste Byte zum Drucker geschickt. Kann durchaus sein, daß das Messgerät es auch so hält, da hilft dann nur probieren... Die Längen sind relativ unkritisch, das geht für heutige Verhältnisse alles recht geruhsam ab. Gruß aus Berlin Michael
Ack wird normalerweise nicht beachtet bzw. nur im interrupt Betrieb genutzt. Einfach testen.
>bei C64-Userport-Druckroutinen >meist nur auf das Ende von Busy gewartet und dann das nächste Byte zum >Drucker geschickt. >Ack wird normalerweise nicht beachtet bzw. nur im interrupt Betrieb >genutzt. Danke, das war's; ich hatte durch das Erzeugen des Ack-Impulses Zeichen verloren, nachdem ich das entfernt hatte ging es ohne Probleme! Für alle die das gleiche Problem haben und diesen Beitrag mit der Suche finden:
1 | BUSYOFF; |
2 | ERROFF; |
3 | SELON; //Printer online |
4 | while (1) |
5 | {
|
6 | loop_until_bit_is_clear(PINC, PC5); //Wait for STROBE |
7 | BUSYON; |
8 | loop_until_bit_is_set(UCSRA, UDRE); |
9 | UDR = PINA; |
10 | BUSYOFF; |
11 | }
|
Vielen Dank, Ja mann
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.