Forum: Mikrocontroller und Digitale Elektronik kurzer impuls zum schalten


von blan (Gast)


Lesenswert?

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

von antworter (Gast)


Lesenswert?

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.

von MR (Gast)


Lesenswert?

mit capture und einem vergleichswert

von Klaus F. (kfalser)


Lesenswert?

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).

von blan (Gast)


Lesenswert?

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

von MR (Gast)


Lesenswert?

welchen Mikrocontroller haste denn ???

von MR (Gast)


Lesenswert?

upppss atmega 8 sehe ich gerade der hat einen capture eingebaut im 
timer1

von Klaus F. (kfalser)


Lesenswert?

> 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)

von blan (Gast)


Lesenswert?

aber mit nop ist es auch nicht viel eleganter als mit wait_ms() oder?

mfg blan

von Klaus F. (kfalser)


Lesenswert?

Aber schneller.
1 ms wartet 1000 x zu lange.

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.