Servus, ich möchte einen 3ms Filter für Digitaleingänge im AVR einbauen. Wie kann das effizient gemacht werden? Man kann hier einfach 3ms warten, um zu sehen, ob der Eingangswert stabil ist, aber der Prozess wird blockiert. Vielleicht nur mit Interrupts? Danke Senmeis
Timer Interrupt das Polling der Eingänge betreibt... da blockt dann nix!
Interrupt auf 1ms stellen, in 3 aufeinanderfolgenden ISRs den Zustand prüfen, wenn stabil, dann Vorgang auslösen.
Gast
#1394683
Simples Digitalfilter aber auch 3ms delay:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Bei einfachen Anwendungen wie Tasten einlesen reicht:
1 | |
2 | |
3 | |
4 | |
Wie wär mit diesem Code?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.