Komparator Interrupt

Gast #109456
Moin, ich hab da mal eine Frage, denn ich komme mit dem Datenblatt
irgendwie nicht richtig zurecht...

Ich schreib in C und hab den ATmega8...

Meine Frage lautet, wie ich den Komparator initializieren muß, wenn ich
möchte, dass der interrupt ausgelöst wird, wenn die spannung abfällt...

Kann mir jemand helfen??

Danke schonmal im vorraus!!
Gast
Das ist mein bisheriger Quellcode...der Interrupt springt einfach nicht
an...


CLEARBIT(DDRD,DDD7);  // PortPin als Eingang
  CLEARBIT(PORTD,DDD7); // Pullup abschalten
  ADMUX = ((0 << MUX0)|(1 << MUX1)|(1 << MUX2)|(1 << MUX3)| (1 <<
REFS1)| (1 << REFS0));
  ACSR = ((1<<ACBG) | (1<<ACIS1) | (1<<ACIS0));
                        // Comparator eingeschaltet

                        // interne Bandgap von 1,22V am
nichtinvertierenden Eingang
                        // Comparator Interrupt on rising output edge
  SETBIT(ACSR,ACI);     // Request löschen
  SETBIT(ACSR,ACIE);    // Comparator Interrupt enabled
Gast
Hi...

Ich verstehe zwar dein C nicht ganz (weil ich in ASM arbeite), aber was
hat ADMUX mit dem Analogkomparator zu tun?

Ich kann mich erinnern, dass ich auch nicht beim ersten Lesen des
ersten AVR-Datenblattes den Unterschied zwischen ADC und
Analog-Komparator erkannt habe... Nimms daher nicht persönlich, wenn
ich diesen Irrtum nicht ausschließe...

Zum Umgang mit dem Analog-Komparator gibt es bei Atmel gute Beispiele
in den Appnotes. Ist zwar meist für AT90S1200 (oder andere Classics),
das Prinzip ist aber überall gleich oder ähnlich...

Bit- & Bytebruch und viel Erfolg...
...HanneS...
Gast
Danke für dem Tip, aber ich glaube das Muss so sein,denn ich möchte die
1,23 V als referenzspannung verwenden...und ohne die Anweisung klappt
es leider auch nicht...
Leider...;(
Gast
Hi...

Sorry, an interne Referenz dachte ich jetzt leider nicht...

Schau dir mal ACME in SFIOR an, könnte vielleicht helfen...

Gruß...
...HanneS...
Gast
Klappt dies?

// Analog Comparator initialization
// Analog Comparator: On
// The Analog Comparator's positive input is
// connected to the Bandgap Voltage Reference
// Interrupt on Falling Output Edge
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x4A;
SFIOR=0x00;

Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.