W BASCOMIE 8051 mam taki program: (bawie się na AT89C2051)
Config Lcd = 16 * 1
Dim Komunikat As String * 10
Komunikat="PORT P3.2"
Cls
Lcd Komunikat
End
Jeżeli chcę wyświetlić wartoś jakiejkolwiek zmiennej, to wyświetla się tylko 8 pierwszych jej znaków (wyświetla tylko "PORT P3."). Próbowalem wysyłać bajt po bajcie (pojedyńcze literki) i efekt był ten sam (8 znaków ). Oczywiście sprawdzałem to na różnych wersjach programu i wszedzie było identycznie.
Jesli na wyświetlacz podam jakikolwiek ciąg stałych znaków, to wszystko jest ok:
Lcd "dowolny ciag"
odp. "dowlny ciag"
Czy ktoś wie dlaczego tak się dzieje??
Czy ktoś wie w jaki sposob rozwiązać ten problem wyświetlania zmiennych??
Jeśli tak, to bedę bardzwo wdzięczny za podpowiedź.
Z góry dziękuję.
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięProblem z wyświetlaniem zmiennych na LCD
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Nie... wyświetlacz jest typowy.. Hitachi 47... coś tam. Wyświetlacz jest ok.To może wyświetlacz jest nietypowy? Możesz podać jego model i producenta?
[ Dodano: 29-11-2004, 22:41 ]
Dzięki za podpowiedź, Twój sposób działa.Witam...
Musisz podzielić tekst na części 8 znakowe i drugą część wysłać przez
Locate 2,1
Lcd xxxxxxx
(dzieje się tak zdaje ze względu na organizację pamięci wyświetlacza)
Doszedłem sam dlaczego tak się dzieje
Otórz....
Zmienna string*x skłąda się z 1byte*x i czasami (nie wiem jeszcze od czego to zależy ale chyba jak zmienna typu string jest większa niz 8, bo początkowo myślałem, ze zawsze tak jest) 1 byte o wartości hex=0A, który znajduje się zawsze na początku zmiennej typu string.
Jak wyświetlacz otrzyma taką wartość, to poprostu głupieje
Doszedłem do tego przy zabawie zapisu danych w 24C02, gdzie zapisywałem bajtowo poszczególne znaki zmiennej typu string, zawsze na początku występowala warość hex=0A.
Można się o tym przekonać jeszcze w inny sposób:
Input C
(podajemy np. "jakas tam wartos") (16 znaków)
wartość z Len(C) będzie wynosiła 17 a nie szesnaście jakby się wydawało.
I myślę, że tutaj leży całkowicie przyczyna.
Jeśli ktoś zna lepsze wytłumaczenie, to bardzo proszę napiszcie.
Pozdrawiam
i jeszcze raz dziękuję
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 67 gości