(Neue Seite für den Analog Komparator des Avr) |
(→Registerübersicht) |
||
Zeile 84: | Zeile 84: | ||
*'''ACI (Analog Comparator Interrupt Flag)'''<br/>Dieses Bit wird automatisch gesetzt, wenn der Komparator einen Interrupt auslöst (definiert über die Bits '''ACIS1''' und '''ACIS0''') und die entsprechende [[ISR]] ausführt. Das Bit wird wieder gelöscht, wenn die entsprechende [[ISR]] abgearbeitet wurde. Alternativ kann man das Bit auch löschen, indem man eine 1 auf das Bit schreibt. | *'''ACI (Analog Comparator Interrupt Flag)'''<br/>Dieses Bit wird automatisch gesetzt, wenn der Komparator einen Interrupt auslöst (definiert über die Bits '''ACIS1''' und '''ACIS0''') und die entsprechende [[ISR]] ausführt. Das Bit wird wieder gelöscht, wenn die entsprechende [[ISR]] abgearbeitet wurde. Alternativ kann man das Bit auch löschen, indem man eine 1 auf das Bit schreibt. | ||
*'''ACIE (Analog Comparator Interrupt Enable)'''<br/>Wird dieses Bit gesetzt, wird der Analog-Komparator Interrupt aktiviert (vorausgesetzt die Interrupts sind global aktiviert). Wird das Bit gelöscht, werden die Interrupts deaktiviert. | *'''ACIE (Analog Comparator Interrupt Enable)'''<br/>Wird dieses Bit gesetzt, wird der Analog-Komparator Interrupt aktiviert (vorausgesetzt die Interrupts sind global aktiviert). Wird das Bit gelöscht, werden die Interrupts deaktiviert. | ||
− | *'''ACIC (Analog Comparator Input Capture Enable)'''<br/> | + | *'''ACIC (Analog Comparator Input Capture Enable)'''<br/> Der Comperator Ausgang übernimmt die Funktion des ICP-Eingangs um Zeiten zu messen (siehe Timer(AVR)). |
*'''ACIS1 (Analog Comparator Interrupt Mode Select)'''<br/>Diese Bits bestimmen welches Ereignis den Analog-Komparator Interrupt aktiviert. Es sind folgenden Einstellungen vorhanden:<br> | *'''ACIS1 (Analog Comparator Interrupt Mode Select)'''<br/>Diese Bits bestimmen welches Ereignis den Analog-Komparator Interrupt aktiviert. Es sind folgenden Einstellungen vorhanden:<br> | ||
{| {{Blauetabelle}} | {| {{Blauetabelle}} | ||
Zeile 120: | Zeile 120: | ||
*'''ACME (Analog Comparator Multiplexer Enable)'''<br/>Wird dieses Bit gesetzt und der [[ADC]] ist deaktiviert (d.h. ADEN aus dem Register ADCSRA ist nicht gesetzt) wählt der Multiplexer den invertierten Eingang zum Analog-Komparator. Wird auf dieses Bit dagegen eine 0 geschrieben, so wird AIN1 mit dem invertierten Eingang des Komparators verbunden. | *'''ACME (Analog Comparator Multiplexer Enable)'''<br/>Wird dieses Bit gesetzt und der [[ADC]] ist deaktiviert (d.h. ADEN aus dem Register ADCSRA ist nicht gesetzt) wählt der Multiplexer den invertierten Eingang zum Analog-Komparator. Wird auf dieses Bit dagegen eine 0 geschrieben, so wird AIN1 mit dem invertierten Eingang des Komparators verbunden. | ||
|} | |} | ||
− | |||
= Siehe auch = | = Siehe auch = |
Version vom 29. August 2008, 23:14 Uhr
Für eine allgemeine Beschreibung des Komparators siehe Artikel Analog-Komparator.
Die meisten AVRs haben einen Komparator integriert. Dieser Komparator besitzt zwei Eingänge – einen normalen und einen invertierten. Wie in Analog-Komparator beschrieben vergleicht der Komparator zwei Spannungen und gibt dann aus welche größer ist. Der Komparator der AVRs lässt sich weiter konfigurieren, siehe dazu die Registerübersicht.
Inhaltsverzeichnis
Funktionsweise
Der Analoge-Komparator vergleicht die Eingangsspannungen der Pins AIN0 (+, Eingang für nicht invertierte Spannung) und AIN1 (-, Eingang für invertierte Spannung). Ist die Spannung an AIN0 höher ist als an AIN1 wird ACO gesetzt. Dieses Verhalten lässt sich natürlich verändern, so dass ACO z.B. auch gesetzt wird, wenn AIN1 höher als AIN0 ist. Siehe dazu die Registerübersicht
Kanäle
Muss man mehrere Größen „gleichzeitig“ (ich schreibe das in Anführungszeichen, weil ein Controller Aufgaben nicht parallel verarbeiten kann wohl aber sehr schnell hintereinander) vergleichen, gibt es (wie beim Analog-Digital-Wandler, kurz ADC) einen Multiplexer mit dessen Hilfe man die Kanäle des Multiplexers auf den Komparator schalten kann. Man kann (natürlich abhängig vom Modell, ich orientiere mich an einem ATmega32) die Pins ADC0..7 über dem Multiplexer mit dem Komparator verbinden und zwar mit dem invertierten Eingang des Komparators. Verwendet man den Multiplexer, muss der ADC allerdings deaktiviert sein.
Folgende Pins sind als Eingänge wählbar.
ACME | ADEN | MUX2..0 | Pin des invertierten Eingangs |
0 | x | xxx | AIN1 |
1 | 1 | xxx | AIN1 |
1 | 0 | 000 | ADC0 |
1 | 0 | 001 | ADC1 |
1 | 0 | 010 | ADC2 |
1 | 0 | 011 | ADC3 |
1 | 0 | 100 | ADC4 |
1 | 0 | 101 | ADC5 |
1 | 0 | 110 | ADC6 |
1 | 0 | 111 | ADC7 |
Registerübersicht
Hinweis: Diese Registertabellen wurden für den aktuellen Atmel Controller Mega16 und Mega32 erstellt. Wenn Sie ein anderes Modell verwenden kann es sein, dass ein oder mehrere Register nicht existieren, oder sie eine andere Bezeichnung haben.
ACSR (Analog Comparator Control And Status Register) | ||||||||||||||||||
Mit diesem Register wird der Komparator des AVR gesteuert.
| ||||||||||||||||||
|
SFIOR (Special Function IO Register) | ||||||||||||||||||
Mit diesem Register lässt sich u.a. der Multiplexer des Komparators aktivieren bzw. deaktivieren.
| ||||||||||||||||||
|
Siehe auch