Sunnyvalian
Guest
Sun Nov 21, 2004 6:57 am
Hi,
amator jestem, laik , lamer i beginner
mam AVR MEGA16 na STK500 (Atmelowski Board) z oscyl. 4MHz do tego LCD 16x1
firmy LUMEX
i program w CodeVisionAVR
#include <mega16.h>
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
void time(int k)
{
int i,n;
for(i=0;i<250;i++) for(n=0;n<k;n++) ;
}
void main(void)
{
.....tu byly inicjalizacje itd......
lcd_init(16);
lcd_putsf("LCD Poczatek");
while (1)
{
// jak nacisne przelacznik to na LCD ma sie cos dziac
if(PIND == ~0x01) lcd_clear();
if(PIND == ~0x02) lcd_putsf("Z");
if(PIND == ~0x04) lcd_putsf("1234567890");
if(PIND == ~0x08)
{
lcd_clear();
lcd_gotoxy(3,0);
lcd_putsf("ABCDEFGHIJK");
}
if(PIND == ~0x10)
{
lcd_clear();
lcd_putsf("M");
time(20);
lcd_clear();
lcd_putsf("Ma");
time(20);
lcd_clear();
lcd_putsf("Mag");
time(20);
lcd_clear();
lcd_putsf("Magd");
time(20);
lcd_clear();
lcd_putsf("Magda");
time(20);
lcd_clear();
lcd_putsf("Magdal");
time(20);
lcd_clear();
lcd_putsf("Magdale");
time(20);
lcd_clear();
lcd_putsf("Magdalen");
time(20);
lcd_clear();
lcd_putsf("Magdalena");
time(20);
lcd_clear();
lcd_putsf("Magdalena ");
time(20);
}
if(PIND == ~0x20)
{
lcd_putchar('M');
time(200);
lcd_putchar('a');
time(200);
lcd_putchar('g');
time(200);
lcd_putchar('d');
time(200);
lcd_putchar('a');
time(200);
lcd_putchar('l');
time(200);
lcd_putchar('e');
time(200);
lcd_putchar('n');
time(200);
lcd_putchar('a');
time(200);
lcd_putchar(' ');
time(200);
}
time(222);
};
}
przy starcie wyswietla tylko 8 znakow -> To zabaw
wiec naciskam sobie przelaczniki na plytce i .....
jakos moj LCD ma problem z wyswietlaniem 8-mego i dalszych znakow
kiedy ciagle naciskam drugi guzik ten od lcd_putsf("Z"); literki z
szybko wypisuja
sie az do 8 miejsca potem pare sekund przerwy i mam z-ki do konca
wypisywanie Magdalena na oba sposoby konczy sie na Magdalen
wiec ludzie pomozcie prosze bo mnie zaraz cos trafi i moja przygoda z
uC skonczy sie szybko
pozdrawiam
peters
Guest
Sun Nov 21, 2004 9:52 am
Quote:
kiedy ciagle naciskam drugi guzik ten od lcd_putsf("Z"); literki z
szybko wypisuja
sie az do 8 miejsca potem pare sekund przerwy i mam z-ki do konca
Witam. Jak pamietam (a pamiec mam bardzo kiepska) przyczyna moze byc taka,
ze kontroler wyswietlacza widzi znaki powyzej 9-tego tak jakby byly w nowym
wierszu.
I chyba tak wlasnie jest w wyswietlaczach 1x16. Mowie chyba, bo od wielu lat
takim sie nie bawilem
peters
Ostry
Guest
Sun Nov 21, 2004 10:12 am
peters wrote:
Quote:
Witam. Jak pamietam (a pamiec mam bardzo kiepska) przyczyna moze byc
taka, ze kontroler wyswietlacza widzi znaki powyzej 9-tego tak jakby
byly w nowym wierszu.
I chyba tak wlasnie jest w wyswietlaczach 1x16. Mowie chyba, bo od
wielu lat takim sie nie bawilem
True, mam taki sam, znaki od 9-go do 16-go mają takie adresy jakby należały
do drugiej linii.
--
Ostry
Piotrek Sz.
Guest
Sun Nov 21, 2004 2:20 pm
Ostry <tocomm@pf.pl.bezzzspamu> napisał(a):
...
Quote:
True, mam taki sam, znaki od 9-go do 16-go mają takie adresy jakby należały
do drugiej linii.
Witam.
One należą do 2-giej linii
LCD 16*1 to jest takie dziwne ustrojstwo . Składa się z 2 wierszy , a każdy
wiersz posiada bufor , w którym mieści się 40 znaków z tym , że na
wyświetlaczu widzimy po 8 znaków z każdej linii.W wyswietlaczu znajduje się
rejestr indeksowy od wartości którego zależy ,które z 8 znaków z bufora widzimy
na wyświetlaczu.
przykład:
bufor_Linia1:1234567890123456789012345678901234567890
bufor_Linia2:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN
index=0:na wyświetlaczu widzimy 12345678abcdefgh
index=5:na wyświetlaczu widzimy 67890123fghijklm
index=25:na wyświetlaczu widzimy 67890123zABCDEFG
Tak to mniejwięcej wygląda ;-)
Pozdrawiam
Piotrek Sz.
PS
Wielkość bufora zależy od typu LCD.Tu opisałem STC1C16DRG
--
Wysłano z serwisu Usenet w portalu Gazeta.pl ->
http://www.gazeta.pl/usenet/
Sunnyvalian
Guest
Mon Nov 22, 2004 5:34 am
dzieki jest tak jak piszecie
"Piotrek Sz." <zumek.WYTNIJ@gazeta.pl> wrote in message
news:cnq4mb$mrm$1@inews.gazeta.pl...
Quote:
Ostry <tocomm@pf.pl.bezzzspamu> napisał(a):
..
True, mam taki sam, znaki od 9-go do 16-go mają takie adresy jakby
należały
do drugiej linii.
Witam.
One należą do 2-giej linii
LCD 16*1 to jest takie dziwne ustrojstwo . Składa się z 2 wierszy , a
każdy
wiersz posiada bufor , w którym mieści się 40 znaków z tym , że na
wyświetlaczu widzimy po 8 znaków z każdej linii.W wyswietlaczu znajduje
się
rejestr indeksowy od wartości którego zależy ,które z 8 znaków z bufora
widzimy
na wyświetlaczu.
przykład:
bufor_Linia1:1234567890123456789012345678901234567890
bufor_Linia2:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN
index=0:na wyświetlaczu widzimy 12345678abcdefgh
index=5:na wyświetlaczu widzimy 67890123fghijklm
index=25:na wyświetlaczu widzimy 67890123zABCDEFG
Tak to mniejwięcej wygląda ;-)
Pozdrawiam
Piotrek Sz.
PS
Wielkość bufora zależy od typu LCD.Tu opisałem STC1C16DRG
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -
http://www.gazeta.pl/usenet/