brauch mal hilfe wie könnte ich es anstellen 4 zähler gleichzeitig zu verwenden. programiere zwar in bascom aber ich hänge im moment am grundsätzlichen. "Hirnblockate..." ziel soll sein 4 wasserzähler zu erfassen 2* vorlauf 2* rücklauf wobei dabei auch noch je 1mal der rücklauf vom vorlauf abgezogen werden müste. Danke sven
Was hindert Dich daran, einfach alle vier Zähler fortlaufend in einem festen, geeignet gewählten Zeitraster, abzufragen, und diese Daten permanent passend zu verrechnen?
mein gedankenproblem ist eigentlich ich hab 4 s0 ausgänge (impulsrad vom zähler) mit nem optokopler abgegriffen also würd sagen max 300hz als zählfrequenz und eigentlich haben zumintest doch die "kleineren" dip atmegas nur 2 interupts... zudem müßte ich ja wenn die signal flanken auswerden da es ja im ungünstigsten fall auch ein dauersignal geben könnte wenn die impulsscheibe "doof" stehen bleibt. sven
Interrupts werden oft überbewertet. Eigentlich reicht es, wenn Du einen Timerinterrupt installierst, sagen wir mit 1kHz, in dem alle notwendigen Zählereingänge gepollt werden. Wenn sich der Signalpegel vom letzten Abfragen ändert, hast Du eine Flanke detektiert und erhöhst damit Deinen Zähler.
ansonsten: mit "gleichzeitig" bist du mit MCs auf der falschen Baustelle. Allenfalls "quasi gleichzeitig".
>also würd sagen max 300hz als >zählfrequenz und eigentlich haben zumintest doch die "kleineren" dip >atmegas nur 2 interupts... 300 Hz max.? Für was brauchst Du da störanfällige Interrupts? Wenn Du die vier Signale fortlaufend alle 1 ms abtastest, geht Dir nix verloren. Fürs Auswerten bleibt auch noch genug µC-Leistung übrig, denn ein AVR kann innerhalb 1 ms bei der Taktfrequenz 8 MHz (Beispielwert) ja ca. 5000 Instruktionen abarbeiten. Reicht das? Wenn nicht: 16 MHz und/oder Assembler.
naja, immer diese Nachplapperei... Wieso geht ihr bei eurer Timer-Interrupt-Abtasterei eigentlich immer von einem 50:50-Rechteck aus? 300Hz allein besagt gar nicht.
Da die PinChange-Interrupts gebündelt auf jeweils ein Flag laufen und erst maskiert werden müssen, eignen sie sich für diese Aufgabe nur bedingt bis gar nicht, je nach verwendetem AVR-Controller.
die 30hz sind maximal geschätzt wenn ein geringerer wasserdurchsatz ist kann es auch im extremfall 1/10hz sein. bzw das signal auf logisch 0 oder 1 stehen bleiben. deshalb meine idea mit der positiven flankenauswerdung. meine jetzige lösungsansatz idea wäre von allen signalen die flanke auszuwerden dieses signal via or verknüpfung auf den int0 sobald dieser ausgelöst wird via xor vergleichen mit vorherigen signalen. so müßte ich doch auch gleichzeitige änderungen erfassen oder? oder hat einer noch ne bessere idea. das ganze ist zur zeit noch reine theorie nur die wasseruhren sind fertig umgebaut. sven
Travel Rec. wrote: > Da die PinChange-Interrupts gebündelt auf jeweils ein Flag laufen und > erst maskiert werden müssen, eignen sie sich für diese Aufgabe nur > bedingt bis gar nicht, je nach verwendetem AVR-Controller. Och nö. Von Dir hätte ich das nicht erwartet. Tastenentprellung angucken, beide Zählerbytes rausschmeißen und nur die Flankenerkennung drin lassen, fertig sind bis zu 8 Flankenflags. Kostet etwa 8 Words Code. Ist Dir das zu viel? Peter
>Wieso geht ihr bei eurer Timer-Interrupt-Abtasterei eigentlich immer von >einem 50:50-Rechteck aus? 300Hz allein besagt gar nicht. Man kann problemlos auch ein 1:5- oder 1:10-Signal abtasten (wird ja z. B. bei den DCF77-Decodern tatsächlich gemacht). Man muss dann nur eine höhere Abtastfrequenz wählen, umso höher, je unsymmetrischer das Signal ist. Solange jedoch keine besonderen Gründe für ein stark unsymmetrisches Signal bekannt sind, wäre es nicht vernünftig, vom Vorliegen eines solchen auszugehen.
@crazy horse Mit einer Abstastung mit 1kHz kann ich bei einer Signalfrequenz von 300Hz ein Puls/Pausverhältnis von bis zu 30:70 verkraften. Insofern verstehe ich Deine Aufregung nicht ;-)
ich reg mich nicht auf, ich habe nur darauf hingewiesen, dass die einfache Formel Abtastfrequenz > 2x Signalfrequenz nicht immer hinhaut. Und es gibt genügend Signale, die durchaus uncharmante Tastverhältnisse haben. Und dann steigt die Abtastfrequenz schnell in unangenehme Höhen, trotz eigentlich geringer Signalfrequenz. Und dann ist schnell Schluss mit lustiger Abtastung. Ich bevorzuge für solche Messungen Interrupts - die sind u.a. dafür da.
>Abtastfrequenz > 2x Signalfrequenz nicht immer hinhaut.
Nur so der Vollstämdigkeit:
Diese Formel haut immer hin. Mit Signalfrequenz ist auch die höchste, im
Signal vorkommende Frequenz gemeint. Gibt es höhere Frequenzen als
Abtastfrequenz/2, dann können diese nicht rekonstruiert werden. Diese
sorgen allerdings für eine Verzerrung des Signales (Aliasing).
tja, da hat man aber bei Rechtecksignalen ein mächtiges Problem, wo liegt denn da nur die höchste Frequenz...
Hallo, @crazy horse: nimm doch als Näherung die 10-fache Frequenz. Klappt bei Oszilloskopen u.ä. ja auch ganz gut, die gehen auch nur sehr selten bis unendlich. ;) Gruß aus Berlin Michael
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.