BASCOM, ATMEGA, LCD

Nov 01, 2003 13 Replies

Witam,



Mam taki nieciekawy problem. Musze pilnie napisac program w BASCOMie, na ATMEGA16.... do portu C mam podlaczony wyswietlacz (8-bit, ale korzystam tylko z 4). Pozostale piny to RS - PD4, RW - PD5, E - PD6.



Problem w tym, ze na wyswietlaczu nie widac nic poza seria czarnych kwadratow w obu rzedach (2*16). Niby powylaczalem WSZYSTKIE mozliwe "uslugi" poprzez STOP i DISABLE (tzn. wszystko wg helpa), ale zdaje sie, ze cos jest nadal nie tak. Do portu A mam na przyklad podlaczona klawiature (4 przyciski na zasadzie zwarcia do masy), ana piecie na ich stykach zmienia sie od 0 do



1,6V (a komparator tez jest niby wylaczony). Mial ktos kiedys cos takiego? LCD jest skofigurwany poprawnie, piny sa podane odpowiednie, tryb busa 4-bitowy. Podejrzewam, ze cos jeszcze trzeba w ATMEDZE wylaczyc, ale co, jak w BASCOMIE wykorzystalem juz chyba wszystkie mozliwosc (od INT0 do ADC) :(

Prosze o pomoc, to jest naprawde pilne, a to moj pierwszy taki projekt i cos nie che ruszyc... :(



Pozdrawiam RR



U¿ytkownik "RRybak" snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news: snipped-for-privacy@gw.datasystem.com.pl

Jak ustawi³e¶ napiêcie polaryzacji LCD? (V_lcd). Gdyby kwadraty pojawia³y siê tylko w pierwszym rzêdzie powiedza³bym, ¿e ¼le zainicjowany kontroler. Jednak w tym wypadku podejrzewam ¼le ustawiony kontrast - tzn. powyzej maksimum.

Zasilacz ma napiecie 5V, kontrast jest podlaczony tez do 5V ale przez potencjometr, wiec moge krecic (znikaja, albo sie maksymalnie zaczerniaja:/ ) Poczatkowo byl tylko jeden rzad kwadratow (gorny), ale cos tam zaczalem w programie zmieniac (powylaczalem jakies urzadzenia i przerwania), poustawialem porty C i D na "output" i w tym momencie pojawiaja sie juz dwa rzedy kwadratow... ??

Ja na twoim miejscu najpierw wyprobowalbym wyswietlacz np. pod portem LPT komputera, a pozniej eliminowal dalej. Ja w BASCOMie nic nie wylaczam, w opcjach podaje tylko piny, pod ktorymi jest LCD, i program ktory ma dwie linijki tez dziala, tzn:

cls lcd "test" end

pzdr, damdam

On Behalf Of RRybak

Robaczki to bym jeszcze rozumiał. Rozumiem, że przejście od braku kwadracików do ich pełnego zaczernienia, poprzez kręcenie potencjometrem jest płynne, tzn. nie występuje skok, że najpierw jest jasno, a później nagle czarne.

No dobra, używasz w trybie 4bit, ale czy procek i LCD o tym wiedzą? ;-)

pzdr Artur

U¿ytkownik "ziel" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@poczta.onet.pl...

Tak, przejscie jest plynne...

config portd = output config portc = output Config Lcd = 16 * 2 Config Lcdbus = 4 Config Lcdmode = Port Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portd.6 , Rs = Portd.4

tyle wiedz±.. cos jeszcze moze byc?

A czy R/W ma odpowiedni poziom?

bo jak sie go nie uzywa to chyba (glowy ne daje) ma byc umasiony.

pzdr, damdam

U¿ytkownik "damdam" snipped-for-privacy@gower.pl napisa³ w wiadomo¶ci news:bo1jq2$t2a$ snipped-for-privacy@atlantis.news.tpi.pl...

Nie wiedzialem, ze bede uzywal BASCOMa i jest podpiety. Ale zmieniam mu programowo stan z "0" na "1". Przy "1" jest jeden wiersz krzyzykow, a przy "0" pokazuja sie dwa wiersze tego czegosc... roznica jest, ale to nie to ... (chociaz moze w dobrym kierunku)

On Behalf Of RRybak

A czemu nie możesz jak zwykli ludzie to robią? ;-)

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , itd. Config Lcd = 16 * 2 Cls Lcd "Hello world."

pzdr Artur

Czesc

U¿ytkownik "RRybak" snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news: snipped-for-privacy@gw.datasystem.com.pl...

Portc.6 , Db7 =

At16 ma na porcie C domyslnie wlaczony interfejs JTAG. Wylacz fuse'a JTAGEN zeby przywrocic zwykle linie i/o.

U¿ytkownik "JeSzcz" snipped-for-privacy@ep.com.pl.remove> napisa³ w wiadomo¶ci news:bo2iic$nhl$ snipped-for-privacy@nemesis.news.tpi.pl...

Wylaczylem JTAGA (faktycznie byl wlaczony), ale teraz wyswietlacz juz losowo reaguje czy ma 1 czy 2 wiersze - mam nadzieje, ze nie zostal uszkodzony (przelaczanie RW duzo nie daje). Obecnie mam na fuse'ach wylaczone OCD, BODEN i JTAG, a wlaczone CKOPT (leci na wewnetrznym 1MHz) i SPI (mimo usilnych prob przelaczenia, zawsze pozostaje wlaczone). No nic, uklad trafi dzis wieczorem w rece eksperta, byc moze on cos poradzi...... a moze akurat wczesniej przypadek dopomoze;) Dodam tylko, ze program sie wykonjue w miare poprawnie -potrafie przelaczac przekazniki naciskajac klawisze, mimo z nadal jest na nich to smieszne napiecie 0,6-1,6V (na klawiszach, a zwieraja do masy). Na moj gust BASCOM nie wylacza jakiegos urzadzenia mimo serii STOP'ow i DISABLE'ow i bedzie to trzeba "recznie" w rejestrach ATMEGA powylaczac... no, ale to juz dla mnie wyzsza szkola jazdy. Dzieki za pomoc, jak ktos cos jeszcze wykombinuje to poprosze o info, ja dam znac jakby cos, co "master" wymyslil...

Pozdr, Radek

U¿ytkownik "RRybak" snipped-for-privacy@wp.pl napisa³ w wiadomo¶ci news: snipped-for-privacy@gw.datasystem.com.pl...

Przy wewnetrznym oscylatorze CKOPT powinien byc zawsze _wylaczony_ (=1)

I bardzo dobrze ;-)) Przelaczenie SPIEN z poziomu isp jest zablokowane , w przeciwnym przypadku musialbys zaraz szukac rownoleglego 'klasycznego' programatora albo adaptera JTAG zeby w ogole cokolwiek przeprogramowac.

To tyle z ogolnych rzeczy - na Bascomie natomiast nie znam sie w ogole, nic nie podpowiem.

Ja bym i tak zaczal od sprawdzenia wyswietlacza, od czegos trzeba zaczac.

pzdr, damdam

Wyswietlacz nalezalo zainicjalizowac w assemblerze, podajac mu konkretne wartosci inicjujace wg manuala w PDF. Po ustawieniu czcionki, ilosci linii, kursora i wymuszenie na nim trybu 4-bit, LCD zaczal dzialac z BASCOMEM, jak gdyby nigdy nic. Glupie nie? No, ale pisze to tutaj, jakby ktos mial w przyszlosci podobny problem ;)

Dzieki za odpowiedzi, Pozdrawiam, Radek

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required