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.
Lesezeichen