Strona 1 z 1
Migotanie LCD
: 18 kwie 2021, 9:15
autor: sq4avs
Może ktoś ma rozwiązanie następującego problemu, migotanie wyświetlacza alfanumerycznego lcd podczas nadpisywania danych. Zjawisko jest szczególnie widoczne przy dużych wyświetlaczach lcd. Co na pewno pomaga, nie używanie instrukcji cls. Nadpisywanie tylko wybranych pozycji wyświetlacza. Może ktoś ma lepsze pomysły.
Re: Migotanie LCD
: 18 kwie 2021, 19:41
autor: grzeniu 73
No właśnie nie wstawia sie cls przed wpisywaniem następnych znaków. Używaj tego przed pętlą lub w wyjątkowych sytuacjach ,a nie w pętli. Kasować ,nadpisywać możesz pustymi znakami. To jest najlepsze rozwiązanie
Re: Migotanie LCD
: 19 kwie 2021, 2:14
autor: sq4avs
Tak ale efekt ciągle nie jest zadowalający. Mam odtworzone konstrukcje w których problem ten wogóle nie występuje czyli da się ale jak
Re: Migotanie LCD
: 19 kwie 2021, 8:57
autor: niveasoft
Pokaż taki migoczący kod to się to spróbuje poprawnie przepisać
Re: Migotanie LCD
: 19 kwie 2021, 19:31
autor: sq4avs
Będę wdzięczny, nie skracałem kodu ale jest tak mały że bez problemu idzie się połapać o co chodzi
$regfile = "m8def.dat"
$crystal = 8000000 'Quarz: 10 MHz
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 40 ' default use 10 for the SW stack
$framesize = 40
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto
Start Adc
Dim UzadaneADC As Integer
Dim Uzadane As Single
Dim IzadaneADC As Integer
Dim Izadane As Single
Dim UzmierzoneADC As Integer
Dim Uzmierzone As Single
Dim IzmierzoneADC As Integer
Dim Izmierzone As Single
Config Pinb.1 = Input
Config Pinb.2 = Output
Przycisk Alias Pinb.1
Przekaznik Alias Portb.2
Cls
Lcd " Zasilacz "
Lowerline
Lcd " regulowany "
Wait 3
Do
Wait 1
Debounce Przycisk , 0 , Pr1 , Sub
UzadaneADC = Getadc(5)
Uzadane = UzadaneADC
Uzadane = Uzadane * 0.00244379 'zamiana bitów na volty
Uzadane = Uzadane * 6 'odczyt napięcia uzwzględniający zastosowan rezystory
IzadaneADC = Getadc(4)
Izadane = IzadaneADC
Izadane = Izadane * 0.00244379
UzmierzoneADC = Getadc(3)
Uzmierzone = UzmierzoneADC
Uzmierzone = Uzmierzone * 0.00244379
Uzmierzone = Uzmierzone * 6
IzmierzoneADC = Getadc(2)
Izmierzone = IzmierzoneADC
Izmierzone = Izmierzone * 0.00244379
'Izmierzone = Izmierzone - 0.006
'Cls
Locate 1 , 5
Lcd " "
Locate 1 , 1
Lcd "Zad " ; Fusing(Uzadane , "#.#") ; "V"
Locate 1 , 11
Lcd Fusing(Izadane , "#.###") ; "A"
If Przekaznik = 1 Then
Locate 2 , 5
Lcd " "
Locate 2 , 1
Lcd "Zmi " ; Fusing(Uzmierzone , "#.#") ; "V"
Locate 2 , 11
Lcd Fusing(Izmierzone , "#.###") ; "A"
End If
If Przekaznik = 0 Then
Locate 2 , 1
Lcd "Zmi --.-V -.---A"
End If
Loop
End
Pr1:
Toggle Przekaznik
Return
Re: Migotanie LCD
: 19 kwie 2021, 20:10
autor: niveasoft
Coś w ten deseń.
$regfile = "m8def.dat"
$crystal = 8000000 'Quarz: 10 MHz
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 40 ' default use 10 for the SW stack
$framesize = 40
$sim
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16x2
Dim Uzadane As Single , Izadane As Single
Dim Tempstr1 As String * 16 , Tempstr2 As String * 16
Uzadane = 1.2
Izadane = 1.234
Do
Tempstr1 = Fusing(izadane , "#.###") + "A" 'najpierw prawa strona
Tempstr1 = Format(tempstr1 , " ")
Tempstr2 = "Zad " + Fusing(uzadane , "#.#") + "V"
Mid(tempstr1 , 1) = Tempstr2
Locate 1 , 1 : Lcd Tempstr1
Wait 1
Loop
Re: Migotanie LCD
: 19 kwie 2021, 20:38
autor: Jacek
Witam Rafał co budujesz?
pozdrawiam Jacek sq2eer.
Re: Migotanie LCD
: 20 kwie 2021, 19:56
autor: sq4avs
Dziękuję za pomoc, potestuję w weekend. Jacku teraz robię miernik szumów fazowych, ale tak naprawdę to pytanie te zadałem bo w innych urządzeniach irytowało mnie miganie na wyświetlaczu.
Re: Migotanie LCD
: 20 kwie 2021, 20:19
autor: Jacek
Powodzenia w budowie.
pozdrawiam Jacek sq2eer.