Hallo,
habe folgendes Programm getippt (Tiny45,Auszug):
Der ADC ist 10 Bit breit also 1024 Dig.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
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







Zitieren

Lesezeichen