eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaNT7603 i ustawianie adresu DDRAMRe: NT7603 i ustawianie adresu DDRAM
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
    From: "adsp" <a...@g...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: NT7603 i ustawianie adresu DDRAM
    Date: Thu, 4 Jun 2009 08:10:50 +0200
    Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
    Lines: 61
    Message-ID: <h07oh8$mf3$1@inews.gazeta.pl>
    References: <g...@n...chmurka.net>
    NNTP-Posting-Host: ns2.energotest.gliwice.pl
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Trace: inews.gazeta.pl 1244095848 23011 83.17.152.37 (4 Jun 2009 06:10:48 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Thu, 4 Jun 2009 06:10:48 +0000 (UTC)
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
    X-Priority: 3
    X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
    X-User: adsp
    X-MSMail-Priority: Normal
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:564849
    [ ukryj 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: