Witam Jestem posiadaczem platformy mobilnej MOBOT A1 firmy WOBIT. Próbowałem podłączyć wyświetlacz pod rożne porty i dalej to samo. Poniżej linki do schematów płyty MOBOTa i listing programu. /files/user_img/u719/mobot_mb_v02.zip '------------------------------------------------------------------------------- 'name : testowy program sterujacy silniki DC MOBOTA 'copyright : tomatopomidoro '------------------------------------------------------------------------------- $regfile = "m128def.dat" 'dyrektywa mikrokontrolera $crystal = 16000000 'uzywany oscylator taktujacy mikrokontroler '----------------------------USTAWIENIA PORTOW --------------------------------- Config Pina.6 = Output 'PIN JAKO WYJSCIE M2_2 (LEWY SILNIK - IN2) Config Pina.5 = Output 'PIN JAKO WYJSCIE M1_2 (LEWY SILNIK - IN1) Config Pina.4 = Output 'PIN JAKO WYJSCIE M2_1 (PRAWY SILNIK - IN2) Config Pina.3 = Output 'PIN JAKO WYJSCIE M1_1 (PRAWY SILNIK - IN1) Config Pinc.1 = Input 'PIN JAKO WEJSCIE DG2 - STAN (LEWY SILNIK - DG) Config Pinc.0 = Input 'PIN JAKO WEJSCIE DG1 - STAN (PRAWY SILNIK - DG) Config Pine.4 = Output 'PIN JAKO WYJSCIE M_PWM1 (PRAWY SILNIK - SS) Config Pine.3 = Output 'PIN JAKO WYJSCIE M_PWM2 (LEWY SILNIK - SS) Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portd.0 , Rs = Portd.1 Config Rc5 = Pinb.0 'PIN JAKO WEJSCIE PODCZERWIENI Config Timer3 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'konfiguracja Timera3 wyjsc PWM '--------------------------- PINY STERUJACE PRACA SILNIKOW -------------------- Set Porta.6 'Ustawienie na stan WYSOKI (LEWY SILNIK - IN2) Set Porta.5 'Ustawienie na stan WYSOKI (LEWY SILNIK - IN1) Set Porta.4 'Ustawienie na stan WYSOKI (PRAWY SILNIK - IN2) Set Porta.3 'Ustawienie na stan WYSOKI (PRAWY SILNIK - IN1) Enable Interrupts 'WLACZENIE PRZERWAN Dim Address As Byte , Command As Byte , Speed As Byte , Licznik As Byte 'DEKLARACJA ZMIENNYCH Licznik = 0 ' ZEROWANIE LICZNIKA Display On Cursor Off Cls '----------------- PETLA GLOWNA PROGRAMU --------------------------------------- Do Lcd "--TEST--" Lowerline Lcd Speed Speed = Lookup(licznik , Predkosci) 'pobiera wartosc predkosci z pamieci If Licznik = 5 Then Licznik = 0 'zeruje licznik po osiagnieciu max predkosci Pwm3a = Speed 'Wartosc wypelnienia (LEWY SILNIK) Pwm3b = Speed 'Wartosc wypelnienia (PRAWY SILNIK) Getrc5(address , Command) 'pobiera dane z nadajnika RC5 Command = Command And &B01111111 If Command = 80 Then Gosub Przod If Command = 81 Then Gosub Tyl If Command = 85 Then Gosub Lewo If Command = 86 Then Gosub Prawo If Command = 87 Then Gosub Zatrzymanie If Command = 32 Then Gosub Predko If Command = 33 Then Gosub Wolno Waitms 200 Loop End '---------------------------------- PODPROGRAMY -------------------------------- Tyl: Porta = &B01111000 'ZERUJE PINY STERUJACE Porta = &B01010000 'USTAWIA PINY STERUJACE NA RUCH DO TYLU Return Przod: Porta = &B01111000 'ZERUJE PINY STERUJACE Porta = &B00101000 'USTAWIA PINY STERUJACE NA RUCH DO PRZODU Return Lewo: Porta = &B01111000 'ZERUJE PINY STERUJACE Porta = &B00110000 'USTAWIA PINY STERUJACE NA RUCH W LEWO Return Prawo: Porta = &B01111000 'ZERUJE PINY STERUJACE Porta = &B01001000 'USTAWIA PINY STERUJACE NA RUCH W PRAWO Return Zatrzymanie: Porta = &B01111000 'ZERUJE PINY STERUJACE Return Predko: Incr Licznik Return Wolno: Decr Licznik Return Predkosci: Data 50 , 100 , 150 , 200 , 255 Proszę o pomoc w czym tkwi problem.
|
|||
Re: Problem z LCD
Nie wiem czy to ma znaczenie, ale ja zawsze pilnowałem by spełniona była zasada:
Moja strona w powijakach
MOBOT A1 - PROBLEM Z LCD 16*2
Podłączałem ten wyświetlacz na Atmedze 32 z poniższymi ustawieniami:
i działa poprawnie. Tutaj na A128 ni w ząb wyświetlacz się nie inicjuje. Pod pinami PB4-PORT.C2, PB5-PORT.C3, PB6-PORT.C4, PB7-PORT.C5, E-PORT.C6, Rs-PORT.C7, też nie działa. Czytałem, że te porty wykorzystuje JTAG dlatego też wyłączyłem go w obsłudze FUSE BITS i dalej nic.
Skończyły mi się już pomysły. Dlatego każda rada mile widziana.
Re: LCD
A ustawiłeś kontrast LCD za pomocą potencjometru? Wyświetl w programie na starcie jakiś napis i poreguluj kontrast. Spróbuj zamienić te linijki miejscami:
i zaraz po tym napisz Cls
Ps. Linki do plików wstaw bezpośrednie a nie do menadżera plików
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: LCD
Kontrast miałem podpięty z GND. Próbowałem też z potencjometrem 10K. Zmieniłem kolejność linijek, dałem też opóźnienie 2s przed inicjalizacją wyświetlacza. Dalej w pierwszej linii mam czarne kwadraty :(
Ps. Linki poprawione
Re: M128
Widzę jeszcze jeden błąd w programie.... brak konfiguracji wszystkich pinów. Wszystkie piny mają być skonfigurowane i ustawiony ma być ich stan początkowy. Piny LCD skonfiguruj jako wyjścia
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: M128
Przepiąłem wyświetlacz pod port C.
i dalej nic.
Re: Robot
Po pierwsze zmień linijki miejscami Config LCD z Config LCDpin. W jaki sposób masz podłączony ten LCD do procka? co z resztą jego pinów. Popatrz jak mam podłączony LCD w moich projektach, np prostego sterownika domowego, lub sterownika CO
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Robot
Przerobiłem program:
Podłączenie mam takie:
i dalej nic :(
Re: Robot
Dlaczego kontrast masz podpięty bezpośrednio pod masę? Powinien być podpięty przez potencjometr.
Moja strona w powijakach
Re: Kontrast
Akurat przy tym wyświetlaczu to nie ma znaczenia. Próbowałem przez potencjometr i generalnie tak w położeniu suwak zbliżonym do masy dopiero dobrze widać. Powyżej wszystko znika.
Problem jest w tym, ze LCD za nic nie chce się zainicjować. Czytałem, ze wtedy właśnie są takie objawy jak świecenie kwadratów w jednej linii.
Re: Kontrast
Dokładnie tak jest że jak nie zainicjowany lcd to wali kwadratami w górnej linii, ale przyczyn tego może być kilka, na przykład źle podpięty wyświetlacz. Ja z pierwszym swoim wyświetlaczem walczyłem dłuższy czas nim go bujnąłem. Okazało się że podpiąłem pod nie te piny co trzeba choć wcześniej myślałem że nie ma to znaczenia.
Moja strona w powijakach
RE: Piny
No właśnie wydaje mi sie, że próbowałem już wszystkich kombinacji. Najlepsze jest to, że wyświetlacz chodzi normalnie pod Atmegą 32 z takimi ustawieniami:
a pod A128 nie potrafię go zainicjować.
W ogóle jakaś porażka. Myślałem, że będę miał problem z innymi elementami robota a tu mnie rozwalił zwykły wyświetlacz.
Re: Robot
Podepnij ten LCD w ogóle na inne piny, do innego portu i sprawdź czy działa. Program wydaje się dobry. Może M128 ma coś w fusebitach, czego nie ustawiłeś. Sam nigdy nie używałem M128 więc nie nie spotkałem się na żadne tego typu problemy
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
RE: LCD NA INNE PINY
Podpiąłem LCD pod inne piny:
i dalej klęska. Mam czarne kwadraty w pierwszym rzędzie.
LCD
Wydaje się niemożliwe, że działa na 32 a na 128 nie. Niedawno temu miałem 128 i nie bylo żadnego problemu
z wyświetlaczem. Potencjometru 10k do regulacji używam zawsze, bez niego raczej nigdy nie wyświetlał tak jak trzeba.I oczywiście myślę, że masz podpięty kwarc zewnętrzny 16MHz i wgrane fusebity np: LOW-FF
HIGH-99 , EXTENDET-FD lub wyłączony Jtag-HIGH-D9.Może kwarc felerny raz mi się to trafiło.No i sprawdz dokladnie wszystkie połączenia może masz gdzieś przewę na którymś pinie do lcd przy tych obudowach nie trudno o błędy jeżeli sam robiłeś płytkę.
Re: LCD
Kolega alex ma rację, może poprostu procek coś nie działa. Dopisz w do loop miganie diodą i jakiegoś wait'a. Przekonasz się czy wogóle procesor wstał
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: LCD
Niestety rozwiązanie chyba nie będzie aż tak proste. Procesor napewno działa, przynajmniej te wyjścia które zaprogramowałem do obsługi jazdy, kontroli poprzez pilota RC5 oraz sterowania silnikiem krokowym.
Co do racji alexa to zgodziłbym się w kwestii fusebitów bo tu akurat próbowałem tylko z JTAGENem i zgodnością z M103C.
W tej chwili mam je tak ustawione:
Czytałem jeszcze na elektrodzie podobny do mojego problem. Ale kod jest tam napisany w C i nie wiem jak go zaimplementować w Bascomie. Chodzi głównie o opóźnienia wstawiane przed instrukcjami:
http://www.elektroda.pl/rtvforum/topic1646349.html