die auskommentierten Zeilen machens dann doch etwas unübersichtlich ...
hier mal etwas gekürzt und bereinigt :

Code:
'Analoge Kamera an ATMega32 (RP6)                                    30.3.09 mic


$regfile = "M32def.dat"                                     ' RP6 mit Mega32
$crystal = 8000000                                          ' taktet mit 8MHz
$baud = 38400                                               ' Loader-Baud

Dim X As Byte
Dim S As String * 30                                        'max 30 Positionen

Config Adc = Free , Prescaler = Auto , Reference = Avcc     ' Dummy-Setup!!!

Admux = 0
Set Admux.refs1
Set Admux.refs0
Set Admux.adlar                                             'ausrichtung links (adch) für 8-bit
Set Admux.2                                                 'Kanal 4
'Sfior = 0
' eventuell besser für andere Funktionen:
Sfior = Sfior And &B00011111                                ' adts2=0 adts1=0 adts0=0
Adcsr = 0
Set Adcsr.aden                                              'ADC Enable
Set Adcsr.adps0                                             ' ADC Prescaler Select Bits (2)

Set Adcsr.5                                                 'adate (ADC Auto Trigger Enable)
Set Adcsr.adif                                              'ADC Interrupt Flag

Set Adcsr.adsc                                              'ADC Start Conversion

Start Adc

Do
   Disable Interrupts
' / / Auf Bildanfang Warten
   Do
   X = 0
      While Adch > 30
      Wend
      While Adch < 50
         Incr X
      Wend
   Loop Until X > 40
   X = 50
   While X > 0
      While Adch > 30
      Wend
      While Adch < 50
      Wend
      Decr X
   Wend
   X = 0
   While Adch > 65                                          'Hell/Dunkel-Schwelle
     Incr X
   Wend
   Enable Interrupts
   Print X ;
   S = Space(x)
   Print S;
   Print "***"
   Waitms 200
Loop

End