Problem gelöst!![]()
Hab den Vorschlag von PicNick mal unter die Lupe genommen, ihn aufgebröselt und nochmal etwas vereinfacht.
Strom, Spannung und Leistung werden jetzt korrekt sowie flimmerfrei angezeit. Desweiteren ist der Code übersichtlicher geworden und kann ohne weiteres auf x beliebige Stellen erweitert werden.
gruß caliCode:$regfile = "m8def.dat" $crystal = 1000000 $hwstack = 40 $swstack = 30 $framesize = 60 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _ Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 2 Cursor Off Cls Dim Messvolt As Word Dim Messstrom As Word Dim Volt As Single Dim Volt_a As String * 10 Dim Strom As Single Dim Strom_a As String * 10 Dim Watt As Single Dim Watt_a As String * 10 Const Spannungsfaktor = 0.0048828125 Const Stromfaktor = 0.0048828125 Do Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Messvolt = Getadc(0) Messstrom = Getadc(1) Volt = Messvolt * Spannungsfaktor Strom = Messstrom * Stromfaktor Watt = Volt * Strom Locate 1 , 1 Lcd "Wattmeter" Volt_a = Fusing(volt , "#.#") If Len(volt_a) = 3 Then Volt_a = " " + Volt_a + "V" Else Volt_a = Volt_a + "V" End If Locate 1 , 12 Lcd Volt_a Strom_a = Fusing(strom , "#.#") If Len(strom_a) = 3 Then Strom_a = " " + Strom_a + "A" Else Strom_a = Strom_a + "A" End If Locate 2 , 12 Lcd Strom_a Watt_a = Fusing(watt , "#.#") If Len(watt_a) = 3 Then Watt_a = " " + Watt_a + "W" Else Watt_a = Watt_a + "W" End If Locate 2 , 3 Lcd Watt_a Waitms 250 Loop End![]()







Zitieren

Lesezeichen