Forum: Mikrocontroller und Digitale Elektronik LPT Acknowledge Pulslänge


von Ja mann (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?


von Michael U. (amiga)


Lesenswert?

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

von Skua C. (skua)


Lesenswert?

Ack wird normalerweise nicht beachtet bzw. nur im interrupt Betrieb 
genutzt.

Einfach testen.

von Ja mann (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.