Migotanie LCD

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
sq4avs
Posty: 9
Rejestracja: 25 lis 2018, 8:51

Migotanie LCD

Post autor: sq4avs » 18 kwie 2021, 9:15

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.
grzeniu 73
Posty: 31
Rejestracja: 07 lip 2019, 0:32

Re: Migotanie LCD

Post autor: grzeniu 73 » 18 kwie 2021, 19:41

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
sq4avs
Posty: 9
Rejestracja: 25 lis 2018, 8:51

Re: Migotanie LCD

Post autor: sq4avs » 19 kwie 2021, 2:14

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
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Migotanie LCD

Post autor: niveasoft » 19 kwie 2021, 8:57

Pokaż taki migoczący kod to się to spróbuje poprawnie przepisać ;)
sq4avs
Posty: 9
Rejestracja: 25 lis 2018, 8:51

Re: Migotanie LCD

Post autor: sq4avs » 19 kwie 2021, 19:31

Będę wdzięczny, nie skracałem kodu ale jest tak mały że bez problemu idzie się połapać o co chodzi
  1. $regfile = "m8def.dat"
  2. $crystal = 8000000                                          'Quarz: 10 MHz
  3. $hwstack = 32                                               ' default use 32 for the hardware stack
  4. $swstack = 40                                               ' default use 10 for the SW stack
  5. $framesize = 40
  6.  
  7. Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0
  8.  
  9. Config Lcd = 16 * 2
  10.  
  11. Config Adc = Single , Prescaler = Auto
  12. Start Adc
  13.  
  14. Dim UzadaneADC As Integer
  15. Dim Uzadane As Single
  16.  
  17. Dim IzadaneADC As Integer
  18. Dim Izadane As Single
  19.  
  20.  
  21. Dim UzmierzoneADC As Integer
  22. Dim Uzmierzone As Single
  23.  
  24. Dim IzmierzoneADC As Integer
  25. Dim Izmierzone As Single
  26.  
  27.  
  28. Config Pinb.1 = Input
  29. Config Pinb.2 = Output
  30.  
  31. Przycisk Alias Pinb.1
  32. Przekaznik Alias Portb.2
  33.  
  34. Cls
  35. Lcd "    Zasilacz    "
  36. Lowerline
  37. Lcd "   regulowany   "
  38. Wait 3
  39.  
  40.  
  41. Do
  42.  
  43. Wait 1
  44.  
  45. Debounce Przycisk , 0 , Pr1 , Sub
  46.  
  47. UzadaneADC = Getadc(5)
  48. Uzadane = UzadaneADC
  49. Uzadane = Uzadane * 0.00244379       'zamiana bitów na volty
  50. Uzadane = Uzadane * 6            'odczyt napięcia uzwzględniający zastosowan rezystory
  51.  
  52. IzadaneADC = Getadc(4)
  53. Izadane = IzadaneADC
  54. Izadane = Izadane * 0.00244379
  55.  
  56. UzmierzoneADC = Getadc(3)
  57. Uzmierzone = UzmierzoneADC
  58. Uzmierzone = Uzmierzone * 0.00244379
  59. Uzmierzone = Uzmierzone * 6
  60.  
  61. IzmierzoneADC  = Getadc(2)
  62. Izmierzone = IzmierzoneADC
  63. Izmierzone = Izmierzone  * 0.00244379
  64. 'Izmierzone = Izmierzone - 0.006
  65.  
  66. 'Cls
  67. Locate 1 , 5
  68. Lcd "            "
  69. Locate 1 , 1
  70. Lcd "Zad " ; Fusing(Uzadane , "#.#") ; "V"
  71. Locate 1 , 11
  72. Lcd Fusing(Izadane , "#.###") ; "A"
  73.  
  74. If Przekaznik = 1 Then
  75.    Locate 2 , 5
  76.    Lcd "            "
  77.    Locate 2 , 1
  78.    Lcd "Zmi " ; Fusing(Uzmierzone , "#.#") ; "V"
  79.    Locate 2 , 11
  80.    Lcd Fusing(Izmierzone , "#.###") ; "A"
  81. End If
  82.  
  83. If Przekaznik = 0 Then
  84.    Locate 2 , 1
  85.    Lcd "Zmi --.-V -.---A"
  86. End If
  87.  
  88. Loop
  89. End
  90.  
  91. Pr1:
  92.    Toggle Przekaznik
  93.  
  94. Return
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Migotanie LCD

Post autor: niveasoft » 19 kwie 2021, 20:10

Coś w ten deseń.
  1. $regfile = "m8def.dat"
  2. $crystal = 8000000                                          'Quarz: 10 MHz
  3. $hwstack = 32                                               ' default use 32 for the hardware stack
  4. $swstack = 40                                               ' default use 10 for the SW stack
  5. $framesize = 40
  6. $sim
  7.  
  8. Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.0
  9. Config Lcd = 16x2
  10.  
  11.  
  12. Dim Uzadane As Single , Izadane As Single
  13. Dim Tempstr1 As String * 16 , Tempstr2 As String * 16
  14.  
  15. Uzadane = 1.2
  16. Izadane = 1.234
  17.  
  18. Do
  19.  
  20.    Tempstr1 = Fusing(izadane , "#.###") + "A"                  'najpierw prawa strona
  21.    Tempstr1 = Format(tempstr1 , "                ")
  22.    Tempstr2 = "Zad " + Fusing(uzadane , "#.#") + "V"
  23.    Mid(tempstr1 , 1) = Tempstr2
  24.    Locate 1 , 1 : Lcd Tempstr1
  25.  
  26.    Wait 1
  27. Loop
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Migotanie LCD

Post autor: Jacek » 19 kwie 2021, 20:38

Witam Rafał co budujesz?
pozdrawiam Jacek sq2eer.
sq4avs
Posty: 9
Rejestracja: 25 lis 2018, 8:51

Re: Migotanie LCD

Post autor: sq4avs » 20 kwie 2021, 19:56

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.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Migotanie LCD

Post autor: Jacek » 20 kwie 2021, 20:19

Powodzenia w budowie.
pozdrawiam Jacek sq2eer.
ODPOWIEDZ