HomeMade

Pełna wersja: Miernik częstotliwości z kitu NE 079-K
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3
Wbrew pozorom to moze być takze wina softu, w procedurze LCD_INIT trzeba sterownikowi wyraźnie podać ile ma linii uzywać, widocznie jedno liniowy kiedy dostaje daną o pozycji poza zakresem wysyła błędy i zawiesza komunikację.

Proponuje zdezasemblować kod, znależć LCD_INIT i tam trzeba zmienić konstantę ładowaną w ustawienia MODE wyświetlacza.

To przykładowa procedra LCD_INIT w AVR

Kod:
    ldi    lcd_data, HD44780_FUNCTION_SET | HD44780_FONT5x7 | [b]HD44780_TWO_LINE[/b] | HD44780_4_BIT    ; // interfejs 4-bity, 2-linie, znak 5x7
    rcall    LCD_WriteCommand

    ldi    lcd_data,HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF       ; // wy-¦czenie wyswietlacza
    rcall    LCD_WriteCommand
    rcall    delay40ms

    rcall    LCD_Clear
    rcall    delay40ms

    ldi    lcd_data,HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT      ;// inkrementaja adresu i przesuwanie kursora
    rcall    LCD_WriteCommand

    rcall    delay40ms

    ldi    lcd_data,HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK   ; // wlacz LCD, bez kursora i mrugania
    rcall    LCD_WriteCommand

    rcall    delay40ms


Kol SQ6ADE zgadza się , ale ja nigdy nie sprawdzam stanu BUSY, jak sie pisze w ASM to wystarczy dać mu 4 ms na zapisanie każdego znaku i nie przypominam sobie żebym widział jakieś błedy... no ale to moze zależeć tez od typu wyświetlacza.



EDIT : sorry przeczytałem schemat tam jest kod mcs-51 nie AVR, zrozumiałem że to zamiana 2 liniowego wyświetlacza na jednoliniowy , ale zasada powinna być ta sama , to musi być niekompaktybilność sprzetowa nowego wyświetacza ze starymi ustawieniami. Są deasamblery, a funkcje init łatwo znaleźć, tylko trzeba umieć programować w ASM. Poczytam jezszcze datashity tych wyświetlaczy i jak znajde rozbieżnosć to moge w wolnej chwili przerobić. A gdzie jest kod do tego miernika??
Ok tylko jak mam zdezasemblować kod ?
Witam

Panowie wróćmy do początku, z tego co zrozumiałem efekt jest po tym jak został wymieniony lcd , dobrze zrozumiałem ? , dlaczego wymieniłeś lcd ?, czy ten miernik już kiedyś już działał ?. Bo może po co odkrywać ameryke tylko dobrać właściwy taki jak był ?

Pozdrawiam

Andrzej
tak działał na starym wyświetlaczu i działał prawidłowo
No tak by było najlepiej ale krótkofalowiec jak wiadomo buduje urządzenia sposobem partyzanckim Smile) z tego co znajdzie w szufladzie. LCD jest na pewno sprawny skoro wyświetla jakieś stringi, tylko róznica moze być w organizacji pamieci i ustawieniach. Warto też odłączyć linie CONTR i chyba zewrzeć ją na mase (albo na plus? już nie pamietam, jest w nocie apliakcyjnej) na max kontrast bo tu mogą byc jakieś róznice,

PS ten pdf z danymi wyświetlacza mi sie nie otwiera
Co do tego magicznego BUSY - fajna sprawka to jest ale ostatnio w praktyce z jakimi'ś displejami
4*16 okazało się że czasami nie mają ochoty zakomunikować że są wolne. I wtedy maszyna stoi i generuje straty
"no bo displej busy" .True - psia mać.

W takiej aplikacji ciągła praca maszyny ważniejsza niż jakieś duperele wyświetlane. Może olać BUSY ?
zmieniony wyświetlacz jest typu WC1601A0-SFYLYNC06
Być może ja to przećwiczyłęm na dwóch typach LCD a jeden by bardzo marnej jakosci i tam nie było problemów, ale być moze są takie które się wieszają, być mozę tam wieksze delaye by pomogły, W LCD jest duuużo luzu bo ludzkie oko readuje tylko na mała ilość informacji , takze jest morze czasu w róznych petlach które trzeba wypełniać delayami. Z tego co widze tu nie ma lini BUSY, kod błedu jest wystawiany na magistrale danych, odłączenie R/W nic nie da jeśli jest procedura sprawdzania stanu każdej operacji, wtedy sie na pewno zawiesi...

Jak znajdę datashit to moze coś wiecej powiem.


PS wystarczy przyłożyć sondę logiczną do R/W jeśli "mruga" to znaczy że jest taka procedura.
ok tylko ja nie mam wglądu do programu na procku :-) , może i chciałbym poprawić ale nie wiem jak odczytać ten wsad z procka
Aha, myslałem ze sam programowałeś z kodu udostepnionego w necie, rozumiem ze po prostu kupiłeś zaprogramowany uC... Tak to to czarno widze, bo masz mała możliwość manewru . Moze być taka sytaucja ze ten drugi LCD jest po prostu wolniejszy, a soft dobrze pracował z tamtym szybszym i to wychodzi w petli pomiaru impulsów, jest wiele mozliwosci i trudno tak powiedzieć.... jak sie samemu pisze to błedy mozna poprawić.
Stron: 1 2 3
Przekierowanie