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