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

Resetowanie programu w Bascom AVR na ATmega8 przy trzecim cyklu przekaźników

Armin 04 Lip 2007 23:22 1224 2
REKLAMA
  • #1 4050189
    Armin
    Poziom 12  
    Posty: 90
    Pomógł: 1
    Ocena: 2
    Witam
    mam problem z programem który napisałem w bascomie avr
    dla procka atmega8
    napisałem program który ma sterować trzema przekaźnikami
    dla dwóch pierwszych przekaźników ustawiam sobie dowolne czasy
    po upływie pierwszego włancza sie drugi i po upływie czasu drugiego włancza sie trzeci i jest włączony do czasu póki nie przycisne STOP

    problem tkwi w tym że gdy po dwóch takich cyklach odmierzania chcę wykonać trzeci cykl to program mi się resetuje
    i nie wiem co jest nie tak, w czym tkwi proble

    bardzo proszę o poradę bo mam to wykonać na pracę dyplomową

    zaprogramowałem go na rezonator 8mhz
    przycisku typu reset zwierające do masy podłączyłem do pd2-pd6 5szt
    wyświetlacz lcd
    i 3 wyjścia sterujące przekaźnikami

    listing w załączniku

    dzięki
    Załączniki:
    • Dokument.doc (22.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 4050942
    redart
    Poziom 23  
    Posty: 529
    Pomógł: 51
    Ocena: 30
    Pobieżnie przejrzałem Twój program (właśnie wychodzę do pracy...) i od razu widzę babola przy konfiguracji portów jako we/wy. Masz tam coś takiego:
    Config Portb.0 = 1 , Portb.1 = 1 , Portb.2 = 1
    Portb.0 = 0 : Portb.1 = 0 : Portb.2 = 0

    Wg mnie powinno być:
    Config Pinb.0 = Output                                      
    Config Pinb.1 = Input

    itd...

    Aby to rozjaśnić załączam kawałek helpa z bascom'a avr:
    Cytat:
    Składnia:

    CONFIG PORTx = tryb
    CONFIG PINx.y = tryb

    gdzie:

    tryb Możliwe jest podanie: INPUT gdy port (końcówka) ma być wejściem lub OUTPUT gdy port (końcówka) ma być wyjściem. Można także użyć wartości bitowej aby szybko skonfigurować poszczególne końcówki portu.
    Opis:

    Aby zmienić tryb pracy portu lub końcówki należy użyć instrukcji CONFIG PORT lub CONFIG PIN.
    Najlepszą metodą na ustawienie kilku linii portu jako wejścia lub wyjścia, jest użycie stałej liczbowej w instrukcji CONFIG PORT. Jedynka na odpowiedniej pozycji oznacza, że ta końcówka będzie wyjściem, zero zaś że wejściem. Na przykład podanie wartości &B00001111 spowoduje, że 4 pierwsze linie portu (7-4) będą wejściami, a 4 następne (3-0) wyjściami.

    Uwaga! Instrukcje ustawiają jedynie kierunek działania linii portu, ustawiając odpowiednio rejestr DDRx. Aby skorzystać z możliwości podciągania (pull-up) podczas pracy portu jako wejście, należy w programie odpowiednio ustawić stan bitów w rejestrze PORTx.

    Uwaga! Niektóre końcówki pełnią jeszcze dodatkową rolę, np. końcówka PORTB.3 jest także sygnałem OC1. Żeby poprawnie pełniła ona funkcję sygnału OC1, musi być ustawiona jako WYJŚCIE (OUTPUT)!

    Przy Twojej wersji kompilator na 100% wywali błąd rejestru portu przy kompilacji.
    Pzdr.
  • #3 4051082
    Armin
    Poziom 12  
    Posty: 90
    Pomógł: 1
    Ocena: 2
    witam
    kompilator skompilował i było ok
    tam gdzie jaest config to configuruje je jako wyjścia
    a linijka niżej ustawiam na portach stan niski
REKLAMA