Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 5 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Sterownik rotora - Bascom
SQ6OXK Offline
Paweł
****

Liczba postów: 317
Dołączył: 23-06-2010
Post: #6
RE: Sterownik rotora - Bascom
Ponieważ, nie wiem jak zmienić, aby LCD odwrotnie wyświetlało litery, tzw taki invert czarne tło, białe znaki, dzięki czemu można by było wykonać przesuwający czarny pasek.

Ja w zamian powiększa litery w wybranym menu i proponuje tak wykonać menu:

Musisz zdeklarować stałe z tekstami menu
Kod:
Const Linia1 = "1 - Ustawienia"
Const Linia2 = "2 - Nastawy"
Const Linia3 - "3 - Pamieci"
Const Linia4 - "4 - Latarka"

....oczywiście dowolną ilość, oraz zmienna określając ilość linii w w menu
Kod:
Const Linii_menu = 4

Do tego potrzebne nam jeszcze pięć zmiennych, jedna do zapamiętywania aktualnej pozycję menu, trzy pomocnicze do obsługi wyświetlania i pętli, oraz pomocnicza znakową do przygotowywania tekstów menu

Kod:
Dim Linia As String * 16
Dim Pozycja_menu As Byte
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte

...no i samą obsługę menu
Kod:
Do
'Najpier określamy które linie chcemy pokazać
  A = Pozycja_menu - 1        'od której linii wyświetlamy menu
  B = Pozycja_menu + 1        'do której linii wyświetlamy menu
  If B > Linii_menu Then      'sprawdzanie czy nie jest to ostatnia pozycja w menu
    B = Linii_menu
    A = B - 2
  End If
  If A < 1 Then               'sprawdzanie czy nie jest to pierwszą pozycja w menu
    A = 1
    #if Linii_menu > 2
      B = A + 2
    #else
      B = 2
    #endif
  End If
  Locate 1 , 7                'wyśrodkowanie dla napisu Menu
  Lcd "MENU"

'petla do wyswietlania reszty menu
  For C = A To B
    D = C - A                 'okreslenie wysietalanej lini
    Select Case D             'przesuniecie kursora na poczatek odpowiedniego wiersza
      Case 0 : Home Lower
      Case 1 : Home Third
      Case 2 : Home Fourth
    End Select
      Select Case C           'wybor testu do menu
        Case 1 : Linia = Linia1
        Case 2 : Linia = Linia2
        Case 3 : Linia = Linia3
        Case 4 : Linia = Linia4
      End Select
    If C = Pozycja_menu Then  'jesli czy aktualnia linia to ta wybrana z menu
      Linia = Ucase(linia)
    End If
    D = 16 - Len(linia)
    Lcd Linia ; Spc(d)
  Next A
Loop

Oczywiście obsługę zmiany zmienne pozycji menu, wraz z klawiszami, przejścia do odpowiedniej pozycji menu itd, musisz zrealizować sam.

--= SWL SP6-01-396 =--
29-03-2011 15:10
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
Sterownik rotora - Bascom - SQ2EER - 27-03-2011, 21:42
RE: Sterownik rotora - Bascom - SQ6OXK - 29-03-2011 15:10

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości