-
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
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
Najnowsze wątki
- 2025-07-17 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-17 Warszawa => IT Hardware Specialist - Wsparcie i Konfiguracja <=
- 2025-07-17 Warszawa => Przedstawiciel handlowy / KAM (branża TSL) <=
- 2025-07-16 deltaT w pompie ciepla
- 2025-07-16 dron na granicy polsko niemieckiej
- 2025-07-16 Warszawa => Senior IT Recruitment Consultant <=
- 2025-07-16 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-16 Gdańsk => Delphi Programmer <=
- 2025-07-16 Warszawa => BI Developer <=
- 2025-07-16 Gdańsk => Programista Delphi <=
- 2025-07-16 chroń PESEL dziecka
- 2025-07-16 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-16 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-07-16 Kraków => Kotlin Developer <=
- 2025-07-16 Warszawa => Inżynier oprogramowania .Net <=