Ich werde auch aus der Hardwarebeschreibung, jetzt mal vom
Spannungsteiler abgesehen, nicht wirklich schlau.
Auf der einen Seite klingt das
> Hierzu habe ich auf der nicht invetierenden Seite eine variable
> Spannung von 10 - 3.3 Volt und auf der invertierenden Seite eine
> konstante Spannung von ca. 3.3V. Wenn die Spannung von dem
> invertierenden Eingang unterschritten wird
nach
* die eine Spannung ist an AIN0 angeschlossen
* die andere Spannung ist an AIN1 angeschlossen
Auf der anderen Seite lese ich im Code
1 | SFIOR = 0X08; // Special Funkction IO Register
|
und die Doku sagt zum Bit ACME
1 | • Bit 3 – ACME: Analog Comparator Multiplexer Enable
|
2 | When this bit is written logic one and the ADC is switched off
|
3 | (ADEN in ADCSRA is zero), the ADC multiplexer selects the negative
|
4 | input to the Analog Comparator. When this bit is written logic zero,
|
5 | AIN1 is applied to the negative input of the Analog Comparator.
|
d.h. das Bit sollte überhaupt nicht gesetzt sein, damit AIN1 auf den
Comperator geschaltet wird.
Daher wieder mal:
Beschreibe nicht deine Schaltung sondern zeige den Schaltplan! Dann muss
man nicht aus vagen Beschreibungen irgendwelche Details rauslesen, von
denen nicht klar ist, wie sie zu interpretieren sind. Ein Schaltplan ist
eindeutig: so und nicht anderes ist die Hardware aufgebaut.
Und PS:
Mit deinen Kommentaren kann man eigentlich nur eines tun: ignorieren.
Denn die Kommentare erzählen nichts. Da steht einfach immer nur in einem
deutschen Satz(-fragment) genau dasselbe, was auch im Code steht. Aber
warum und wieso du etwas machst, das steht nicht dort.
Ich greif einfach mal irgendeinen raus
1 | ACSR = 0x0B; // Analog Comparator Control And
|
2 | // Status Register configuration
|
3 | // (0b00001011)
|
OK, das ACSR das Analog Comperator Control And Status Register ist, mag
vielleicht wirklich nicht jeder wissen. Wenn man sich aber klar macht,
worum es im Programm geht, sollte eigentlich klar sein, dass es sich
dabei wohl kaum um ein Konfigurationsregister für die UART handelt. Dass
du mir als Leser die 0x0B in Bits aufdröselst, ist zwar nett, bringt
mich aber auch nicht weiter wenn ich mir die Frage stelle: Was, zum
Henker, stellt er da eigentlich ein?
Was ich mir wünschen würde ist, dass da steht, dass der Interrupt
enabled wird und auf welche Flankenrichtung der Interrupt reagiert. Aber
das steht nicht da. Um das rauszukriegen muss ich das Datenblatt
rauskramen und erst mal nachblättern und Bits vergleichen.