Hallo, ich würde gerne eine fallende Flanke mit einem uC erkennen. Int wollte ich keinen verwenden, daher taste ich das Eingangssignal regelmäßig (mit 10kHz) ab. Leider funktioniert die Erkennung nicht ganz tadellos, daher meine Frage: Wie sicher wird denn ein anliegender High od. Low Pegel vom uC erkannt? Kann es sein, dass wenn ich "zu schnell" abtaste bei einer fallenden Flanke zuerst ein High, dann ein Low und dann, weil sich der uC nicht ganz sicher ist noch ein High kommt? Vielen Dank, Daniel
welcher MC? Warum keinen Int? Es macht keinen Sinn, einen Eingang so oft abzufragen (und dann im Zweifelsfall doch Ereignisse zu verlieren).
Ich verwende einen ATMega8. Das soll eine bidirektionale Eindraht Kommunikation werden. Int ist deshalb blöd, weil ich den dann auch jedes mal umschalten müsste (soll ja zum senden und empfangen gehen) und außerdem weiß ich nicht, ob all meine Endgeräte immer einen Int frei haben (Bisher basieren die auf einem Tiny26). Ich möchte die Routine halt möglichst universell gestalten. Nochmal zurück zu meiner Frage: Gibt es einen Volt-Bereich, bei dem der uC "sich nicht entscheiden" kann, ob es eine 1 oder eine 0 ist, oder ist die Abgrenzung eindeutig? Vielen Dank, Daniel
Also ich bin kein Physikexperte, aber rein logisch gesehen ist die Abgrenzung eindeutig! Egal was passiert, der uC wird immer entweder 0 oder 1 als Zustand erkennen - schließlich kennt er keinen anderen Zustand. Was ist denn das für ein Eingangssignal, dessen fallende Flanke Du erkennen möchtest (vor allem: wie schnell ist es - hat es ne höhere Schaltfrequenz als 10KHz)? Lohnt sich der Einsatz eines externen Integrators oder muß es low-budget-mäßig integriert werden?
Wenn Du gerade bei einer Flanke (die ja nicht unendlich kurz ist) abtastest, bekommst Du trotzdem ein eindeutiges low oder high. So bei halber Betriebsspannung (je nach MC) ist der Punkt, wo es sich entscheidet. Wenn Du oft genug abtastest, geht Dir also nix verloren, abgesehen vom exakten Zeitpunkt der aufgetretenen Flanke.
Naja mit ext. Komponenten ginge es wohl auch nur in eine Richtung (Thema Umschalten...), das ist damit wohl raus... Aber wenn die Frequenz unter 10 KHz wäre (was sie wohl nicht ist oder woher kommen die Probleme? kenne mich mit C nicht aus), dann wäre die Lösung unter ASM doch recht simpel, oder? (bzw. mir fallen gleich mehrere Lösungen ein)
doch doch die Frequenz liegt bei unter 1kHz. Woher die Probleme kommen bin ich mir auch nicht sicher. Es war halt nur so eine Vermutung, dass es daran liegen könnte. Auf jeden Fall werden die übertragenen Bits nicht richtig erkannt und im Debugger arbeitet es sich auch schlecht, weil die Zeiten zwischen den Bits so lang sind. Also bleibt nur "manueller Debugger" und alles per Hand durchgehen, irgendwo muss ja der Fehler liegen...;-( Viele Grüße, Daniel
Es gilt das Abtasttheorem: Wenn Du mit 100µs (10kHz) abtastest, muß ein low- bzw. ein high-Pegel immer länger als 100µs sein, damit er sicher erkannt wird. Effektiv darf Dein Eingangssignal also nicht über 4kHz liegen (mit Tastverhältnis 1:1). Peter
Ach ja das Abtasttheorem. Theoretisch ist die maximal abtastbare Frequenz die halbe Abtastfrequenz, praktisch sollte sie noch etwas niedriger liegen (wie Peter schon sagte) Aber 1KHz ist weit drunter also liegt´s daran schonmal nicht.
Bei ner Rechteckschwingung müßte die Abtastfrequenz demnach theoretisch unendlich hoch sein ...Zum Glück reicht die Erfassung der Grundwelle - wenn das Tastverhältnis 50% ist. Allg. also muß das Abtastintervall mindestens kürzer als der kürzeste zu erwartende Impuls (ob hi oder lo) sein.
Es wäre nett, wenn das obige Programm zur Flankenerkennung in diesem Forum verfügbar wäre. Gruss
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.