Hallo
Ich habe hier ein Programm was an einem ADC Eingang vom Mega32 die Spannung misst und an einem zweiten die Spannung die an einem Widerstand abfällt um daraus den Strom zu berechnen.
Allerdings zeigt das LCD mir die Werte jeweils zwei mal an und ich weiß nicht wieso.
Hier ist der Code
Code:
$regfile = "m32def.dat"
$crystal = 16000000

Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4

Start Adc

Declare Sub _spannungsmessung()
Declare Sub _strommessung()
Declare Sub _spannungsanzeige()
Declare Sub _stromanzeige()
Const Ref = 5 / 1023
Dim Spannung As Single
Dim Strom As Single
Dim Volt As Single
Dim Ampere As Single


Main:
Do

   Initlcd
   Cls
   Call _spannungsmessung
   Call _spannungsanzeige
   Call _strommessung
   Call _stromanzeige


Loop
End

Sub _spannungsmessung
Local W As Word
W = Getadc(0.)
Spannung = W * Ref
Spannung = Spannung * 1
Volt = Spannung
End Sub

Sub _strommessung
Local S As Word
S = Getadc(1.)
Strom = S * Ref
Strom = Strom / 100
Ampere = Strom
End Sub

Sub _spannungsanzeige()
Locate 1 , 1
Lcd "Spannung  :"
Locate 1 , 13
Lcd Spannung
End Sub

Sub _stromanzeige()
Locate 2 , 1
Lcd "Strom     :"
Locate 2 , 13
Lcd Ampere
End Sub
Und hier ein Foto um das Problem zu zeigen.
http://img684.imageshack.us/img684/6269/bilddk.jpg
Was ich meine ist das z.B. 2x der Spannungswert angezeigt wird.