-
Data: 2009-06-04 06:10:50
Temat: Re: NT7603 i ustawianie adresu DDRAM
Od: "adsp" <a...@g...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Adam Wysocki" <g...@n...invalid> napisał w
wiadomości news:gophi.pme.1244070502@news.chmurka.net...
>
> Problem: Każde ustawienie adresu DDRAM powyżej 40 i poniżej 48 (np. 43)
> ustawia go na 40, czyli znak pojawia się na początku drugiej linijki.
> Powyżej 48 w ogóle się nie pojawia. Dla pierwszej linijki wszystko jest
> w porządku.
> Dzieje się tak tylko przy ustawianiu poleceniem 0x80. Inkrementacja
> przez wyświetlacz przy zapisie do DDRAM działa ok.
podlaczyles inny, dobry LCD - taki sam efekt?
>
>
> Co ważniejsze funkcje (przejrzałem je kilka razy, ale może coś
> przeoczyłem?).
>
> void lcd_goto(uint8_t x, uint8_t y)
> {
> send_byte(RS_C, 0x80 + ((y == 1) ? 40 : 0) + x);
> }
>
jestes pewien, ze ta funkcja dziala dobrze??
1) SET DDRAM - na bicie 7 ma być zawsze 1 - pole bitowe z ustawionymi bitami
lepiej maskowac niz dodawac
2) adresy DDRAM dla LCD 2-wierszowego: 1 linia 0x00..0x27, 2 linia
0x40..0x67
3) w kodzie jak operujesz na hex, to uzywaj stalych tylko hex - latwo mozna
cos przeoczyc (0x80 i 40)
4) sprawdzaj zakresy argumentow
Ja bym ta funkcje napisal tak (dla LCD 2x16 znakowego):
CursorX - kolumny 0..15
CursorY - wiersze 0..1
#define LCD_CURSOR_X_MAX 15
#define LCD_LINE0 0
#define LCD_LINE1 1
#define LCD_OFFSET_LINE0 0x00
#define LCD_OFFSET_LINE1 0x40
#define LCD_SET_DDRAM_CMD 0x80
void LcdGotoXY(u8 CursorX, u8 CursorY)
{
if (CursorX > LCD_CURSOR_X_MAX)
CursorX = LCD_CURSOR_X_MAX;
u8 Cmd;
Offset = LCD_OFFSET_LINE0;
if (CursorY == LCD_LINE1)
Cmd = LCD_OFFSET_LINE1;
Cmd |= LCD_SET_DDRAM_CMD | CursorX;
LcdSendByte(Cmd);
}
latwo przerobisz kod dla wiekszych LCD.
http://home.iae.nl/users/pouweha/lcd/lcd0.shtml
Następne wpisy z tego wątku
- 04.06.09 12:00 Adam Wysocki
Najnowsze wątki z tej grupy
- Czy cos fi przechodzi przez trafo separujące?
- śrubka masy
- Ciekawostka na dziś lock bity
- [OT] napisy w YT
- Było 83V
- Stare komputery
- Odbiornik ADS-B i wzmacniacze
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
Najnowsze wątki
- 2025-08-06 Gdynia => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-08-06 Białystok => Inżynier oprogramowania .Net <=
- 2025-08-06 "[...] sejmowe wystąpienie posłanki Klaudii Jachiry, która zakończyła je słowami ,,Sława Ukrainie"."
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Panuje się 181 159,42 zł./mies. na posła w 2026r.
- 2025-08-05 "Chiny przekraczają w wydobyciu 4 mld ton węgla, Indie i USA ponad 1 mld, a Rosja 500 mln ton [...]"
- 2025-08-05 Czy cos fi przechodzi przez trafo separujące?
- 2025-08-05 kajaki i promile
- 2025-08-05 Re: Tesla jest bezpieczna, wczoraj spaliła się doszczętnie na Ursynowie i nikomu się nic nie stało
- 2025-08-05 Gdynia => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-08-05 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-05 B2B i książka przychodów i rozchodów
- 2025-08-04 Re: Atak na lekarza w Oławie. Policja zatrzymała sprawcę na lotnisku Polska Agencja Prasowa 4 sierpnia 2025, 12:16 FACEBOOK X E-MAIL KOPIUJ LINK W szpitalu w Oławie 37-letni pacjent zaatakował lekarza, po tym, jak ten odmówił mu wypisania długoterminowego
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- 2025-08-04 Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML