mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Komparator Interrupt


Autor: Mephisto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!!

Autor: Mephisto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mephisto,

hast du die Interrupt freigegeben, indem du im Statusregister mit
__SEI();
das I-Flag gesetzt hast?

Gruß
Markus

Autor: Mephisto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo,kam direkt dannach...

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Mephisto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...;(

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi...

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

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

Gruß...
...HanneS...

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.