Hallo,

habe folgendes Programm getippt (Tiny45,Auszug):

Code:
$regfile = "ATtiny45.dat"                                   'Tiny45 Regfile

$crystal = 8000000                                          '8MHz

On Adc Onadc                                                'Interrupt für Adc Wert

Admux = &B00100010
'         ^^-----------------Voltage Reference:00=Vcc
'           ^----------------Left Adjust
'            ^---------------Not Used
'             ^^^^-----------Analog Channel:0010=ADC2 PB4

Adcsra = &B11111101
'          ^-----------------Adc Enable
'           ^----------------Adc Start Conversion
'            ^---------------Adc Auto Trigger Enable
'             ^--------------Adc Interrupt Flag
'              ^-------------Adc Interrupt Enable
'               ^^^----------Adc Prescaler Select Bits;Prescaler128

Enable Interrupts                                           'Interrupts globaleinschalten 

Dim Analog As Word  
Dim Akku_low As Bit    

do
loop

Onadc:                                                      ' Interrupt ADC
Analog = Adch                                               'ADC Wert an Variable übergeben
 If Analog =< 485 Then                                      
   Akku_low = 1                                             'Akku_low Bit bilden
 End If
 If Analog >= 533 Then
   Akku_low = 0
 End If
Return
Der ADC ist 10 Bit breit also 1024 Dig.
Also müsste bei der 5V Referenz das Akku_Low Bit bei <=2,368V gesetzt und bei 2,604V zurückgesetzt werden.
Tut es leider nicht, das Bit ist die ganze Zeit gesetzt. Ich muss die beiden Werte (485 sowie 533) schon auf ca. 100 runttersetzen mit sich etwas im 2V Bereich am ADC tut.

Langsam verzweifel ich. Das Datenblatt habe ich schon zig mal gelesen.
Vielleicht findet ja hier jemand den Fehler.

Danke
Daniel