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

[Bascom][Atmega8] Termostat do wytrawiarki - Krzaki na LCD i Reset.

n0name10 20 Sie 2012 14:22 2067 7
  • #1 20 Sie 2012 14:22
    n0name10
    Poziom 17  

    Witam, zwracam się z prośbą o rozwiązanie mojego problemu. Niedawno zacząłem interesować się programowaniem mikrokontrolerów w języku bascom. Mój ostatni projekt który wykonałem to jedno kanałowy termostat do wytrawiarki pcb. Problem polega na tym, iż po po wielokrotnym naciskaniu przycisków na wyświetlaczu lcd zaczynają pojawiać się tzw. "krzaczki" a niedługo potem dochodzi do restertu mikrokontrolera. Mikrokontroler Atmega8A, kwarc jaki zastosowałem w swoim projekcie to 16Mhz, kondensatory filtrujące 100nf na wejściu Vcc i Avcc i 2x 22pf na kwarcu. Dodam iż jest to drugi wyświetlacz na którym testowałem program i dzieje się to samo (więc nie jest to wina wyświetlacza ). Aktualnie cały projekt zmontowany jest na płytce stykowej wśród plątaniny kabli. Bascom nie wyrzuca błędów odnośnie kodu.

    A teraz pytania do użytkowników:
    Czy taki montaż może wprowadzać zakłócenia do projeku ? ( patrz załącznik )
    Czy macie może jakieś pomysły na rozwiązanie problemu z tymi " Krzaczkami " ?
    Czy w programie występują jakieś niedociągnięcia ? ( proszę o wskazówki jak je wyeliminować )

    [Bascom][Atmega8] Termostat do wytrawiarki - Krzaki na LCD i Reset.

    Poprawiłem temat na bardziej oddający problem. Przeniosłem do właściwego działu.
    LordBlick

    0 7
  • Arrow Multisolution Day
  • #2 20 Sie 2012 15:47
    MArSTER_1
    Poziom 18  

    Zamiast przerwania od Timera0 odmierzaj czas Timerem1.

    0
  • Arrow Multisolution Day
  • #3 20 Sie 2012 16:18
    n0name10
    Poziom 17  

    Jaka jest różnica pomiędzy timerem0 a timerem1 i co wprowadzi ta zmiana ?

    Niestety zmiana timera nic nie pomogła, dalej pojawiają się błędy w postaci tzw. "krzaczków" i restartu uC.

    0
  • #4 20 Sie 2012 16:34
    MArSTER_1
    Poziom 18  

    Będziesz mniej razy wyskakiwał z podprogramu do obsługi przerwania.

    0
  • #5 20 Sie 2012 23:42
    n0name10
    Poziom 17  

    Ma ktoś jeszcze jakieś pomysły na likwidacje tych błędów w postaci "krzaczków" oraz zwieszania się uC ?

    0
  • Pomocny post
    #6 21 Sie 2012 11:16
    Mundi1970
    Poziom 24  

    Przypuszczam że przyczyną wieszania programu jest przepełnienie stosu. Chyba za bardzo pogubiłeś się w tych skokach :) Przyglądnij się podprogramowi Menu, który w rzeczywistości nie jest podprogramem, a wywołujesz go przez Gosub Menu w Podprogram_4.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #7 21 Sie 2012 12:26
    Electix
    Poziom 20  

    Oczywiście że "krzaki" na wyświetlaczu mogą być spowodowane plątaniną kabelków, nie do końca dobrym stykiem itp... Nawet zakłócenia EMC mogą je wywoływać.

    Nie analizowałem Twojego kodu, bo Bascomem nie zajmuję się już od lat, ale może po prostu powinieneś odświeżać częściej LCD nadpisując całe jego pole spacjami...

    0
  • #8 21 Sie 2012 12:26
    n0name10
    Poziom 17  

    Problem rozwiązany dzięki pomocy Mundi1970. Jak się okazało program miał większe zapotrzebowanie na stos programowy niż ustawione domyślnie jego wartości. Wprowadzenie 3 dyrektyw rozwiązało wszystkie problemy.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Dzięki wielkie, pozdrawiam !

    0