hi- Im gcc-tutorial ist eine methode beschrieben (siehe (*)), wie man mit dem comparator bei fehlendem adc doch analogwerte ermitteln kann. Wer hat das schon mal (am besten mit einem attiny2313) probiert? ich komme vor allem an folgenden stellen nicht weiter: das bit ACO im ACSR macht, was es soll - nämlich je nach modus (ACIS0 bzw 1) die eingangswerte vergleichen. Beim start des aufladevorgangs kann ich (einige cycles verschoben) einen Timer starten. Wie aber kann ich mit ACO einen Timer BEENDEN - um die zeitdauer des aufladevorgangs zu ermitteln? (*) "Das Prinzip der Messung ist nun dem vorhergehenden recht ähnlich. Durch Anlegen eines LOW-Pegels an Pin 2 wird der Kondensator zuerst einmal entladen. Auch hier muss darauf geachtet werden, dass der Entladevorgang genügend lang dauert. Nun wird Pin 2 auf HIGH gelegt. Der Kondensator wird geladen. Wenn die Spannung über dem Kondensator die am Eingangspin anliegende Spannung erreicht hat schaltet der Komparator durch. Die Zeit, welche benötigt wird, um den Kondensator zu laden kann nun auch wieder als Maß für die Spannung an Pin 1 herangezogen werden. " thx jr
Poor man's solution: du lässt ihn einen Interrupt auslösen und liest dort den Timer aus. Da hast du natürlich noch die Interruptlatenz. Einige (neuere?) AVRs können glaub' ich mit dem Komparator auch ein input capture event eines Timers triggern, aber da müsstest du schon konkret werden.
wie kann der zustand eines einzelnen BITs (ACO) einen interrupt auslösen??
Indem der Analogkomparator einen eigenen Interrupt bekommen hat. Aber auch ansonsten sind es durchweg einzelne Bits, die Interrupts auslösen...
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.