hi, ich bastel gerade an einer schrittmotorsteuerung mit einem atmega8 und zwei L297 und L298. ich möchte gern die clock- / resetleitung über den atmega8 steuern, dafür brauch ich einen kurzen impuls. ich kenn bis jetzt zwei möglichkeiten wie ich das realisiere (software): 1. ich setz den high-pegel, warte paar ms und setz dann wieder den low-pegel 2. ich nehm ein timer der das ding toggled und dann aufhört ich finde beide methoden allerdings nicht gerade traumhaft. wie würdet ihr das machen bzw. was gibts noch für möglichkeiten. mein atmega8 ist direkt mit den pins der L297-Driver verbunden. mfg blan
Da ich mit den L297 noch nichts gebastelt habe, gilt folgendes unter Vorbehalt: Wenn Dein Mikrocontroller mit einer festen Zeitbasis auskommt (z.B. 100us) könntest Du den L297 immer in einem Timer-Interrupt bedienen - also je nachdem was nötig ist, an den Clock-/Reset-Leitungen ziehen. Andere Aufgaben könntest Du dann nebenher in der main() Schleife oder entsprechenden Interrupts machen. Die beste Implementation hängt aber vom "ganzen Bild" ab - was muß der ATMega sonst noch machen, wie sehen die zeitlichen Anforderungen aus (Reaktionszeit, High-/Low-Zeiten der Signale etc.) usw.
Wenn Dein Puls nur SEHR kurz zu sein braucht, dann genügt ein Setzen und ein darauffolgendes Löschen. Das dürfte einen Puls von ca 50-100 ns geben, je nach Oszillator-Frequenz. Zum Verlängern kann man noch ein paar "nop" dazwischen setzen (mit inline Assembler).
danke für eure antworten! @ MR: so wie ich das im Datenblatt verstanden habe, brauch ich dazu auch hardware und müsste an den leitungen basteln. lieder kann ich deswegen die lösung nicht benutzen. @ Klaus: das hab ich mir auch schon überlegt. ich weiss allerdings nicht was für schaltzeiten der L297 braucht - werde ich aber mal ausprobieren. hat sonst noch jemand eine idee? mfg blan
upppss atmega 8 sehe ich gerade der hat einen capture eingebaut im timer1
> das hab ich mir auch schon überlegt. ich weiss allerdings nicht was für > schaltzeiten der L297 braucht - werde ich aber mal ausprobieren. Nicht probieren, Datenblatt lesen ! (Pssst : 0.5 us für Clock, 1 us für reset. Mit einer Schleife und 10-20 nop's bist Du dabei)
aber mit nop ist es auch nicht viel eleganter als mit wait_ms() oder? mfg blan
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.