PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit ADC



hellraider
26.03.2006, 16:27
Hallo,
ich habe bei meinem Atmega 32 den ADC auf Port7 programmiert,
und habe nun das Problem, das ich bei einem Eingangswert von
0-5 Volt, die 0-255 ca. 3 mal durchfahre.
Der Vref hängt auf 5V, und am Eingang des ADC hängt ein Poti mit 10k zwischen Masse und 5 V.
-----------------------------------------------------------------------------------
Initteil
Programmauszug :

$regfile = "m32def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency

$hwstack = 32
$swstack = 10
$framesize = 40

Ddrd = &B11111111 'definieren der verwendeten Ports ( 1 = ausgang; 0= eingang)
Portd = &B00000000 'definieren der einzelnen Pins an einem Port ( 0= low level; 1= high level)
Ddra = &B00000001
Ddrc = &B11111111
Portc = &B00000000
Ddrb = &B11111111
Portb = &B00000000

Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.0 , Rs = Porta.0

Config Lcd = 16 * 2

Dim A As Byte
Dim B As Byte
Dim X As Byte

Enable Interrupts

Config Adc = Single , Prescaler = Auto

Start Adc
----------------------------------------------------------------------------------
Abfrage ADC

Cls
Home
Lcd " Bargraph "
Lowerline
B = Getadc(7)
Lcd "Speed :" ; B
----------------------------------------------------------------------------------
Kann mir jemand helfen, was ich verkehrt mache ?
Muss ich an Vref eine andere Spannung anlegen ?

Schon mla danke im voraus.

gruß

bertl100
26.03.2006, 16:34
Ich versteh dein Problem irgendwie nicht?!
Was geht denn nicht?
Willst du die Spannung in Volt anzeigen lassen oder als Binärwert.......

MFG

Bertl

astro9481
26.03.2006, 16:34
du definierst variable B als byte, byte ist aber eine 8bit zahl und kann nur bis 255 anzeigen.
Änder mal den datentyp auf z.B. word.

bertl100
26.03.2006, 16:35
Genau, dim B as word
dann funzt es

hellraider
26.03.2006, 20:55
Hallo,
jow genau das wars,
danke für die schnelle und sachliche Hilfe.

Gruß