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

[ATMEGA32] - zacinanie się programu (używanie timera)

20 Sie 2016 12:45 915 5
  • Poziom 16  
    Witam.
    Od jakiegoś czasu próbuję zrobić swój własny sterownik pieca CO. W sterowniku mam trzy tryby pracy. Mam problem w automatycznym czyli jeżeli temperatura osiągnie wartość z przedziału powiedzmy 40 stopni do 60 to ma się załączać przedmuch na czas 10 s a przestój ma mieć czas 5 min. Zrealizowałem to na timerze i wszystko wygląda na to że działa tylko po jakichś od 1min do 3min w czasie pracy po spełnieniu tych warunków cały program mi się wiesza. No i muszę resetować go.

    Poniżej wrzucam fragment kodu związanego z timerem, który realizuje tę funkcję.
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Co może być przyczyną zacinania się programu?
    Wyświetlanie danych zrealizowane jest za pomocą wyświetlacza HHD44780.

    Poniżej "reszta kodu" do trybu automatycznego.
    Kod: c
    Zaloguj się, aby zobaczyć kod
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Pomocny post
    Użytkownik usunął konto  
  • Poziom 16  
    Cytat:
    W przerwaniu robisz wyświetlanie na lcd


    Czyli nie powinienem dawać funkcji wyświetlania w przerwaniach? Dać ją do głównej funkcji main czy jak?
  • Pomocny post
    Użytkownik usunął konto  
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    @kamil12239 Wywołujesz funkcje obsługi LCD zarówno z main, jak i z ISR. Jesteś pewien, że mogą one być wykonywane współbieżnie (są reentrant?). Idę o zakład, że nie. Pewnie tu dochodzi do jakiejś kolizji.
  • Poziom 16  
    Panowie Piotrus_999 i tmf wasze spostrzeżenie było słuszne. Jak wywaliłem te funkcję do głównej main to pomogło. Nie ma żadnego zacinania się. Nie wiedziałem że nie można w ten sposób robić.
    Temat do zamknięcia.

    Pozdrawiam.