Ich glaub da fehlt noch das ACME Bit in SFIOR um den MUX für den Analog Comparator zu aktivieren.
Gruß
Searcher
Ich glaub da fehlt noch das ACME Bit in SFIOR um den MUX für den Analog Comparator zu aktivieren.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Endlich vielen vielen Dank, genau das wars!
Wenn du Probleme mit prellenden Kontakten hast, kannst du vor Ende der ISR noch das ACI in ACSR vorsorglich durch Schreiben einer 1 löschen. (Wenn der Button prellt, was er sehr wahrscheinlich macht, könnte nach Einsprung in die ISR das Interruptflag sofort wieder gesetzt werden und steht bei Rücksprung aus der ISR wieder neu an. Effekt: ISR wird sofort wieder ein zweites Mal ausgeführt).
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Das Löschen des Interrupt-falgs wäre einer erster Versuch gegen Prellen, aber bei einer kurzen ISR wird das Vermutlich nicht wirklich helfen. Die konsequente Lösung um mehrere Interrupts durch eine Flanke zu vermeiden wäre eine Verzögerung per Timer: als in der Komparator ISR einen Timer so programmieren das nach etwa 1 ms ein Interrupt kommt, und dann erst einmal den Komparator Interrupt ausschalten. In der Timer ISR wird dann der Komparator wieder scharf gemacht, und dafür der Timer deaktiviert.
Danke für die Hinweise, werde ich einbauen.
Ist es auch möglich, mit dem Komparator mehrere Eingänge zu übermachen z.B: ABC5-ABC7 und eine "pin-spezifischen" Interrupt zu generieren, wenn einer dieser Pins seinen Zustand ändert? Also das selbe, wie mein Codebeispiel weiter oben nur mit mehreren Eingängen?
Der Komparator kann immer nur einen Pin zur Zeit überwachen. Je nach µC gibt es einen PIN Change Interrut, der einen ganzen Port oder ggf. auch einen Teil davon überwachen kann, und dann einen Interrupt auslöst wenn sich einer Pins als Digitaler Eingang ändert. Welcher Pin dann der Auslöser war muss man in Software in der ISR bestimmen.
Lesezeichen