logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8][Bascom] - Sterownik pieca, menu

Matkas 25 Sty 2010 22:01 5852 12
  • #1 7591890
    Matkas
    Poziom 15  
    Witam,
    napisałem program ,który ma za zadanie sprawdzać temperatury i wykonywać poszczególne zadania. Można powiedzieć, że wszystko jest okey, ale czasami program sam przechodzi z Menu do Piec Maks_temp, i przyciski czasami działają z opóźnieniem. Kolejnym problemem jest zwieszanie się procesora, po ustawieniu maksymalnej temperatury Bojlera.
    Proszę o przejrzenie kodu i sprawdzenie co należałoby poprawić, aby wszystko działało poprawnie.

    Pozdrawiam , Mateusz.


    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #2 7592652
    marco47
    Poziom 41  
    Nie pisz
    Cytat:
    'czyta swicze
    tylko napisz po polsku czyta przyciski
    Coś za bardzo pogmatwałeś program , opisz poszczególne linie kodu bo trzeba się domyślać o co chodziło autorowi .
    Zresztą sądzę że będziesz musiał przekonstruować cały kod .
    Nie wiem jak go pisałeś , tzn. od razu cały kod , czy powiększałeś go stopniowo dodając poszczególne bloki funkcyjne i testując go cały czas .
    Jeżeli drugim sposobem to nie powinieneś mieć problemów go przerobić , ale gdy pisałeś go pierwszym sposobem to będą problemy.
  • #3 7593889
    Matkas
    Poziom 15  
    Edit:
    Problem rozwiązany. Wyrzuciłem funkcję 'debounce' i dałem 2 warunki. Teraz wszystko ładnie śmiga. Wystarczyło tak niewiele, a zmieniło tak wiele:)
    Dzięki za pomoc.

    Pozdrwaiam
  • #4 7613573
    Matkas
    Poziom 15  
    Witam,
    prosze ponownie o pomoc, z tym, że już raczej nie kwestie programową. Układ umieściłem w pomieszczeniu ok. 3m x 1m, gdzie znajduje się router z wi-fi. Problem wygląda tak, że program działa samoczynnie, jakby ktoś naciskał klawisze. Jak takie zakłócenia wyeliminować?

    Pozdrawiam
  • #5 7613619
    leon1313
    Poziom 15  
    Podciągałeś wejścia do zasilania wewnętrznym rezystorem?
    /edit: zauważyłem, przepraszam
  • #7 7613693
    marco47
    Poziom 41  
    Pokaż schemat z płytką pcb , może doprowadzenia działają jak anteny.
    Powinieneś zmienić sposób zapisywania konfiguracji portów , jest bardziej czytelny na pierwszy rzut oka (analizator cyfrowy w oczach)
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #9 7613933
    marco47
    Poziom 41  
    Jeżeli to gotowy projekt z gotową płytką pcb to jedynie można ekranować płytkę , sprawdzić jakość zasilania (zakłócenia , lepsze filtrowanie zakłóceń) . Czynników może być wiele .
  • #10 9255467
    paol2
    Poziom 12  
    przepraszam że odkopuje temat mam problem z dopisaniem do programu sterownika pieca co jednej funkcji mianowicie chodzi o rozruch pieca jest wyznaczony czas na rozruch i nie mogę go obejść a nawet w przypadku przegrzania pieca będzie dalej odliczał a mógłby po zadanej temperaturze przejść do normalnej pracy


    Kod: text
    Zaloguj się, aby zobaczyć kod


    a jak dopisze to "If Rozruch = 0 Then T_piec > T_pompy Then" to to nie działa i nie wiem jak to zrobic
  • #11 9256755
    arktik1
    Poziom 27  
    Nie bardzo rozumiem co napisałeś, strasznie poplątałeś.
    Napisał bym tak:
    Jeśli rozruch pieca jest uruchomiony i temperatura jest mniejsza od zadanej to licz czas.
    Jeśli rozruch pieca jest uruchomiony i temperatura zadana jest osiągnięta to przerwij liczenie , wyzeruj zegar i przejdż do normalnej pracy.
    Jeśli piec się przegrzeje to zatrzymaj normalną pracę i czekaj na właściwą temperaturę.
  • #12 9256850
    paol2
    Poziom 12  
    noo właśnie o to mi chodzi, poplątałem troch wiem przepraszam ale dopisywałem i jakoś nie zadziałało nie wiem czemu

    wyglądało to tak:

    Kod: text
    Zaloguj się, aby zobaczyć kod



    a może ma być End If Rozruch = 0 Then T_piec > T_pompy Then
    już sam nie wiem
  • #13 9256901
    arktik1
    Poziom 27  
    Czy ty w ogóle wiesz co jest napisane w tym kodzie?
    Wygląda to tak:
    Licz Minuty
    Jeśli Rozruch=1 wtedy czas_rozruchu=Czas_rozruchu-1
    jeśli Rozruch=0 wtedy t_piec jest większa niż T_pompa wtedy
    jeśli Czas_rozruchu = 0 wtedy
    Czas_rozruchu = 15
    Rozruch = 0
    ....
    Przecież to nie może działać poprawnie.
    Rozruch to mam rozumieć kilka sekund na zapalenie palnika?
REKLAMA