Hallo, wenn ich einen Binärzähler clearen will, toggle ich dann den Pin an dem die CLR Eingänge des BZ hängen? Wie müsste ich das in C direkt umsetzen? Muss ich dann bevor ich das tue die Interrupts deaktivieren? Vielen Dank im Voraus skugga edit Nutze ein Mega32. CLR hängt am T0/CLK (PB0).
:
Bearbeitet durch User
welchen Binärzähler? Vrmtl. musst du CLR setzen und wieder loslassen (also 1 ausgeben, kurz danach 0). Wie lange, sollte eigentlich auch dem Datenblatt hervorgehen.
Ich nutze den 74HC393 als Prescaler. Möchte ihn nach jeder Messphase löschen um keine falschen Bits auszulesen. Funktioniert das trotzdem über Togglen?
Schau. Dem 74HC393 ist das doch völlig wurscht, wer da an seinen Pins rumfummelt. Im Datenblatt steht dass dieser CLR Eingang normalerweise auf 0 Pegel liegt und wenn der Pin auf High-Pegel wechselt, dann wird der Zähler gelöscht. Der IC schert sich nicht drum, wer oder was diese Pegelwechsel auslöst. Ob das ein Taster ist, oder ein Optokoppler, ob das ein Relais ist oder auch der Ausgang eines µC. Sobald der Eingangspin des 393 von logisch 0 auf logisch 1 wechselt, wird der Zähler gelöscht. Und genau das kannst du mit deinem µC machen. Die beiden Pins sind miteinander verbunden und das was du per Programm am µC-Ausgangspin ausgibst, das erscheint beim 393 am Eingangspin. Ergo .... Du weißt, wie man es in C schreibt, so dass ein bestimmter auf Ausgang geschalteter Pin 0 Pegel einnimmt? Du weißt, wie man es in C schreibt, so dass ein bestimmter auf Ausgang geschalteter Pin einen 1 Pegel einnimmt? Dann weißt du auch, wie die Anweisungen aussehen müssen, damit der Pin von seinem Grundzustand 0 auf 1 und dann wieder zurück auf 0 wechselt (damit der Pin dann wieder auf seinem Grundzustand ist). Da der 393 im Nanosekundenbereich reagiert, brauchst du noch nicht mal auf das Timing aufpassen. Einfach den Pin auf 1 und danach wieder zurück auf 0 und der Zähler ist auf 0 zurückgestellt.
:
Bearbeitet durch User
Top! Ja das setzen kriege ich hin. Nur, dass ich danach den Grundzustand wieder geben muss, hab ich nich dran gedacht. Wie sieht das mit den Interrupts nun aus? Sollten doch dafür deaktiviert werden, oder? Vielen Dank dafür!
:
Bearbeitet durch User
A. M. schrieb: > Wie sieht das mit den Interrupts nun aus? Sollten doch dafür deaktiviert > werden, oder? Das hat mit dem Vorgang "Reset 74HC393" nichts zu tun. Wenn ein Interrupt dazwischen kommt, wir das Reset-Signal höchsten länger. Die Funktion "Reset" wir dadurch aber nicht beeinflusst. Wenn in der Situation allerdings in der Interrupt-Routine der Zähler weiter gezählt wird, hat das Zählen natürlich keine Wirkung. Der Zähler steht auf "Reset". Ob dieser Fall jedoch für die Anwendung relevant ist, weißt nur Du. Gruß Dietrich
Liest du den Zählerstand in einer Interrupt-Routine aus? Dann schalte gleich danach einen Port-Pin auf CLR-Pegel und gleich danach wieder auf den anderen Pegel. Bei 8 MHz µC-Takt ist das ausreichend.
Erwin schrieb: > Liest du den Zählerstand in einer Interrupt-Routine aus? > Dann schalte gleich danach einen Port-Pin auf CLR-Pegel > und gleich danach wieder auf den anderen Pegel. > > Bei 8 MHz µC-Takt ist das ausreichend. Mein Systemtakt ist 16MHz, und ja ich wollte das direkt in der ISR tun.
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.