Arduino Zeit Problem

Gast #4930929
Lesenswert?

Ich habe ein Problem mit Zeit und dem Arduino.

Ich möchte jedes mal wenn Eingang  2 (Intterrupt) einen Impuls bekommt, 
einen Summer ansteuern.

Das mache ich so:

digitalWrite(SUMMER, HIGH);
delay(1); //1mS wait;
digitalWrite (SUMMER,LOW);

Das funktioniert.

Wenn ich den delay weglass, dann hört man es fast nicht.

Problem:
Wenn man viele Impulse bekommt, werden Pulse vergessen.Zb. bei 1500HZ 
werden nur ~900 Pulse angezeigt. Und das Display aktualsiert auch sehr 
schlecht.

Ich glaube es ist zuviel Aufand würd den Arduino, kann man mit anderen 
Bauteilen eine Schaltung bauen welche auf eine Flanke vom Arduino den 
Summer 1mS ansteuert?

Wenn ja, hat jemand einen Schaltplan?
Gast #4931018
Lesenswert?

Wie ich verstanden habe werden die Impulse auch gezählt.

Ob bei jedem Impuls der Summer ertönt ist sicher nicht wichtig.

Ich würde in der Interrupt Funktion eine globale Variable hochzählen 
(votaile nicht vergessen) und in der Loop Funktion diese auf Änderung 
prüfen. Bei Änderung wird der Summer betätigt und die Anzeige 
aktualisiert.

Allgemein gilt, dass die Interruptfunktion möglichst kurz gehalten 
warden muss.

Gruß JensM
Gast #4931044
Lesenswert?

Nop schrieb:
> Peter D. schrieb:
>
>> Ein MC kann keine negativen Zeiten erzeugen.
>
> Dafür braucht man halt  schon einen schnellen Mehrkernprozessor,
> eventuell auch noch mit Unterstützung der Grafikkarte.

Ach, und damit kann man dann "negative Zeiten" erzeugen? ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren