Ich habe nämlich nicht wirklich alles verstanden
Wie auch, ich habe einige Wochen Drübernachdenkzeit Vorsprung, das kannst du an einem Nachmitag kaum einholen :)

Die ADC (Analog/Digital-Wandler) der AVRs liefern einen 10bit-Wert im 16bit-ADC-Register. Dieses Register setzt sich aber eigentlich aus den zwei 8bit-Registern ADCH und ADCL zusammen (AVRS sind 8-bit-Kontroller) auf die man jeweils auch einzeln zugreifen kann. Um alle 16 Bits auszulesen muss erst das ADCL- und dann das ADCH-Register gelesen und beide Werte zum 16Bit-Ergebniss zusammengesetzt werden (das erledigen die Compiler selbstständig). Nun darf der ADC zwischen diesen beiden 8bit-Lesungen die Werte nicht verändern, deshalb wird er automatisch gestoppt bis das ADCH auch gelesen wurde:
When ADCL is read, the ADC Data Register is not updated until ADCH is read. Consequently,
if the result is left adjusted and no more than 8-bit precision is required, it is
sufficient to read ADCH. Otherwise, ADCL must be read first, then ADCH.
(Aus dem Datenblatt des Mega32 Seite 217)

Für unsere Kamera benötigen wir aus mehreren Gründen nicht die volle Auflösung des ADCs, deshalb begnügen wir uns mit höchstens 8 Bit (für Hell/Dunkel würden eigentlich schon zwei genügen). Und genau dafür hat der ADC eine spezielle Funktion: Er kann das Ergebniss linksbündig darstellen. Das bedeutet, das 10Bit Ergebniss der Wandlung stehen im ADC-Register nicht in ADC:Bit9-0 sondern in ADC:Bit15-6. Wenn man nun ADCH ausliest und ADCL wegwirft erhält man die MSB des Ergebnisses als 8bit-Wert:
The ADLAR bit in ADMUX, and the MUXn bits in ADMUX affect the way the result is
read from the registers. If ADLAR is set, the result is left adjusted. If ADLAR is cleared
(default), the result is right adjusted.
(Ich gehe mal davon aus ihr beherrscht Datenblattenglisch)

Ich sehe eigentlich keinen Grund dafür von Bascom nach C zu wechseln. (Bascom gefällt mir persönlich eigentlich auch besser als C. Wenn ich unter anderen Vorzeichen auf die Microkontroller gestoßen wäre, hätte ich mich vermutlich für Bascom entschieden.) Obwohl diese Anwendung einer Kamera wohl eher die Ausnahme sein dürfte kann es durchaus sein dass im WWW irgendwo ein fertiges Bascomprogramm dafür schlummert. Ich habe allerdings noch nicht danach gesucht.

Gruß

mic