Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Program na 89c2051 nie działa

dareksp9 01 Lis 2014 22:51 1086 8
  • #1 01 Lis 2014 22:51
    dareksp9
    Poziom 12  

    Zbudowałem kilka lat temu sterownik kolektora słonecznego ze strony http://mirley.firlej.org/sterownik_kolektora_slonecznego i wszystko jest ok i działa. Zmieniłem wtedy tylko temperatury zaprogramowane jest 45 On i 5 histereza. Po kilku latach chciałem zmienić wartości nastaw, niestety oryginalny program odczytany z procesora i zapisany ponownie działa a plik ze strony (hex i bin) i po kompilacji z bascoma nie rusza. Nie mam pojęcia gdzie popełniam błąd. W załączeniu załączam plik odczytany działający i oryginał nie działający jak również test. Nawet najprostszy program załączający wyświetlacz do sprawdzenia pracy procesora nie rusza na płytce sterownika (plik TEST), (procesor sprawny z programem odczytanym pracuje). W załączniku załączam plik oryginalny ze strony oraz odczytany z procesora działający. Programuje na programatorze Willem z programem wersji 0,97ja. Proszę o pomoc gdzie popełniam błąd w kompilacji, czy programowaniu.

    0 8
  • #2 01 Lis 2014 23:33
    excray
    Poziom 39  

    Pierwsze co zauważyłem po otworzeniu obu plików to to że w Twojej wersji jest na samym początku Bajt 0x02 - patrz dolne okno pierwszy bajt. Spróbuj go usunąć i zaprogramować taką wersją procesor.
    Program na 89c2051 nie działa

    0
  • #3 02 Lis 2014 00:03
    Tytus Kosiarski
    Poziom 14  

    Witam

    Co się dzieje na wyświetlaczu po wgraniu programu TEST? Według mnie, patrząc na kod źródłowy, na wyświetlaczu powinno naprzemiennie: wyświetlać "88" i wygaszać go co sekundę, jeśli Wait 1 jest to opóźnienie 1 sekundy.

    Obydwie binarki różnią się między sobą już na zerowym bajcie. Dalej też są różnice. Dobrze piny procesora kontaktują w podstawce Willema?

    Pozdrawiam, KT

    0
  • #4 02 Lis 2014 16:32
    dareksp9
    Poziom 12  

    Dziękuję za zainteresowanie. Na samym początku Bajt 0x02 próbowałem usuwać, ale nic to nie pomogło. Plik test powinien zaświecić a potem zgasić wyświetlacz (nawet próbowałem tylko zaświecić) i sprawdzałem miernikiem czy są wyzerowane odpowiednie porty procesora, ale niestety procesor nie reaguje jakby plik był źle skompilowany. Co do stykania Willema to styka prawidłowo ponieważ każda próba wgrania działającego pliku kończy się powodzeniem i sterownik rusza (co świadczy też o sprawnym procesorze). Po kilku próbach okazało się, że użycie komendy wait zawiesza całkowicie procesor (poniższy programik nie zaświeci wyświetlacza a po usunięciu linijki "wait 1" tak)

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Wygląda na to, że program bascom 8051 niepoprawnie kompiluje program nie zgłaszając błędów przy kompilacji :( Jeśli ma ktoś pomysł jak można inaczej zmienić zaprogramowane temperatury to będę wdzięczny. Wiem, że można z klawiatury ale za każdym razem po zaniku zasilania sterownik się resetuje do wartości zaprogramowanych.

    0
  • Pomocny post
    #5 02 Lis 2014 17:08
    Tytus Kosiarski
    Poziom 14  

    Może się uda tak:
    W poście otwierającym wątek napisałeś, że zaprogramowana temperatura jest 45stC. W hex jest to 0x2D. W tej dobrej binarce wartość ta występuje tylko 3 razy. Spróbuj w edytorze hex zmienić te wartości na jakieś inne, najpierw w pierwszej lokacji (pozostałe bez zmian, ewentualnie przywróć oryginalną wartość), potem w drugiej (pozostałe bez zmian, ewentualnie przywróć oryginalną wartość) i na końcu w trzeciej. Po każdej zmianie wgraj binarkę do mikrokontrolera i zobacz, co będzie.

    Pozdrawiam, KT

    0
  • #6 02 Lis 2014 18:12
    dareksp9
    Poziom 12  

    Dziękuję za pomoc. W edytorze zmieniłem temperaturę ($0000DE) oraz histerezę ($0000E1) i sterownik działa. Szkoda tylko, że bascom 8051 nie działa już prawidłowo dla tych procesorów. Muszę w przyszłości zmienić sterownik tak aby był programowany po ISP będzie łatwiej :)

    0
  • #8 04 Lis 2014 08:55
    piotr_go
    Poziom 27  

    W pliku odczytanym z procesora masz przesunięcie. Nie czytałeś go czasem kitem avt320?
    Pamiętam że on coś podobnie knocił na oryginalnym sofcie który próbowałem przerobić do współpracy z 89c4051.
    Link Soft

    excray napisał:
    jest na samym początku Bajt 0x02 - patrz dolne okno pierwszy bajt. Spróbuj go usunąć

    Nie usuwaj, tak powinno być.

    0
  • #9 06 Lis 2014 20:24
    dareksp9
    Poziom 12  

    Procesor czytałem tak jak na początku programowałem tym samym urządzeniem czyli Willem (zmienił się tylko system windows z 98 na 7). Nie będę się zagłębiał czemu teraz nie działa prawidłowo po wgraniu ponieważ znalazłem bity odpowiedzialne za zmianę temperatur w pliku HEX i mogłem je zmodyfikować uzyskując pożądany efekt. Mimo wszystko dziękuję za zainteresowanie i zamykam temat.

    0