Frohes Neues Jahr an das Forum ! Ich bin gerade aus den Anfängerschwierigkeiten raus und wollte nun damit beginnen, mal produktiv mit meinem Mega8 zu programmieren. Ich habe mir gedacht, das ich einfach mal ein Programm schreibe, das die Zeichen, die auf dem USART ankommen, auf 8 Datenleitungen (1 PORT) legt und dann ein Signal z.B. für einen Drucker erzeugt. Das Programm, das den USART Eingangspuffer auf den PORT C legt habe ich und wenn ich mit Hyperterminal einen Buchstaben eingebe, dann leuchten auch 8 LED am PORT C in der richtigen Kombination auf. Nun wollte ich das ganze erweitern, das dann auch, wenn kein Busy anliegt ein Strobe gesendet wird und ein NEC P6 Drucker (Centronics) die Sachen dann ausgibt. Es klappt aber nur gelegentlich. Ich habe mir dann die Spezifikationen für die LPT-Schnittstelle gegoogled und da steht dann was von Strobe, der max. 10 uSec lang sein darf und einem ACK-Signal vom Drucker, das ca. 6 uSec lang ist. Hat da jemand eine Idee, wie ich so kurze Signale mit dem Controller auswerten / erzeugen kann ? Wie gesagt, ich bin gerade aus den gröbsten Anfängerproblemen raus und einen Sourcecode, den ich hier posten kann, habe ich noch nicht, weil mein Programmierstil noch so ist, das ich nach wenigen Tagen meinen eigenen Sourcecode nicht mehr lesen / verstehen kann (zu chaotisch). Gibt es da eigentlich eine Seite, die beschreibt, wie man "richtig" programmiert und den Sourcecode macht ?
Das geht am Besten mit einem guten Buch wie zB. "C für Mikrocontroller" von Burckhard Mann. SG Lumpi
Die 6 usec sind doch lang genug, wenn der Controller sonst nichts zu tun hat, sonst würde ich einen INT-Eingang benutzen. Die Centronics Schnittstelle an so einer alten "singenden Säge" - ich hab auch noch irgendwo meinen Star NL10 rumstehen - sollte eigentlich keine Probleme machen, 8 Datenbits und drei wichtige Handshakes, der Rest "Paper out" usw. muß nicht benutzt werden. Strobe zum Drucker, nach ACK darf schon das nächste Byte angelegt werden und nachdem busy um ist auch der nächste Strobe-Impuls. 73 Christoph
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.