PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Analog-Digital-Comparator Attiny 25?



Powell
12.06.2007, 12:37
Hallo

Ich möchte gerne einen Analogwert mit dem Attiny 25 auswerten. Meim Atmega 8 hat das bei mir schon geklappt in dem ich das Register Adch einfahc abfrage erhalte ich einen wert zwischen 0 und 256.
Beim Attiny 25 hab ich es genauso gemacht, allerdings hat es da nicht geklappt.
Hier ist mal der Code den ich geschrieben habe:




Grüße Paul

$regfile = "attiny25.dat" 'Prozessor-Deklarationen

$crystal = 1000000 'Quarz: 1,000 MHz Intern

Admux = &B00100010
Adcsra = &B11000010

Declare Sub Buchse1

Declare Sub Buchse2

Dim A As Byte

'---------------------------------------------------------

Ddrb = &B00000110 'Pin Pb 1,2 Ausgang, rest Eingang

Portb.0 = 1
Portb.3 = 1 'Pullups der Eingänge aktiviert 'PullUp von Pin PD0+1+rest aktivieren

'----------------------------------------------------------

Config Debounce = 50

Do

If Adch < 32 Then
A = 50
End If

If Adch < 96 And Adch > 32 Then
A = 75
End If

If Adch < 160 And Adch > 96 Then
A = 100
End If

If Adch < 224 And Adch > 160 Then
A = 125
End If

If Adch > 224 Then
A = 150
End If


Debounce Pinb.3 , 0 , Buchse1 , Sub 'Entprellte Tasterabfrage

Debounce Pinb.0 , 0 , Buchse2 , Sub 'Entprellte Tasterabfrage

Loop

'----------------------------------------------------------

Sub Buchse2




Portb.1 = 1
Waitms A
'^^^^^^^^^^^^^^^^--------------------------------------------- Zeit abhängig von Drehschalter

Portb.1 = 0




End Sub

Sub Buchse1





Portb.2 = 1
Waitms A
'^^^^^^^^^^^^^^^^--------------------------------------------- Zeit abhängig von Drehschalter

Portb.2 = 0


End Sub


End

FlatBeat
14.06.2007, 12:45
Erstmal heißt das Ding Analog-Digital-Converter. Weiter wäre interessant zu wissen, was genau nicht klappt. Zwar bin ich nur in Assembler fit was die Programmierung von µC angeht, weiß also nicht was dein Compiler so im Hintergrund automatisch macht. Jedoch schreibt der ADC normalerweise nur die beiden höchsten bit in ADCH, also wirst du so keine für dich verwertbaren Werte bekommen. Du musst das bit ADLAR in einem der ADC-Kontrollregister setzen, um es nach deinem Schema nutzen zu können. Welches Register das beim Tiny25 ist, sagt dir dann das Datenblatt.
Oder Aber du liest das Ergebnis aus ADCL aus, kommt drauf an, welche Werte du am Eingang erwartest.