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

Re: Migotanie LCD

: 19 kwie 2021, 20:10
autor: niveasoft
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

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.