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.

ATmega32/BASCOM - Gdzieś mam błąd - początki

mrhw 10 Sty 2013 02:43 846 0
  • #1 10 Sty 2013 02:43
    mrhw
    Poziom 11  

    Napisałem swój pierwszy prosty programik, na wzór z książki Wiązani, obsługujący wyświetlacz 4xLED i LCD. Na LED wyświetlany jest licznik a na LCD tekst. Wszystko działało dopóki nie dodałem obsługi klawisza na PORTA.4. Doszedłem do obsługi klawisza za pomocą Debounce ;) i próbowałem jak działa. U mnie nie działała więc sprawdziłem na If ..then.

    Założenie było takie, że przyciśnięcie przycisku miało zwiększać szybkość odliczania i zmienić wyświetlany tekst.

    Program działa losowo, właściwie zawsze kończy się resetem. Mało tego wystarczy zmiana z PINx.x na PORTx.x i już się zmienia działanie.

    Czy mógłby ktoś zerknąć.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    I jeszcze jedno. Gdzie mogę znaleźć dokładny opis funkcji Bascoma? Przez 2 dni walczyłem z programikiem na kilka linijek, a okazało się że argumentem makebcd musi być byte bo na wordzie głupieje.

    Win 7
    Bascom 2,0,7,5
    MegaLoad V7
    Programator z bootloaderem

    Zmieniłem wszystkie PINx.x na PORTx.x w całym listingu oraz zaremowany fragment czytający przycisk na
    Kod: text
    Zaloguj się, aby zobaczyć kod


    i nie reaguje w ogóle na naciśnięcie. Gdy PORTA.4 zmienię na Pina.4 reaguje ale się resetuje. Gdy wywalę w ogóle tego IFa i Gosub program działa poprawnie.

    Pomogło wstawienie PUSHALL na początku podprogramu obsługującego klawisz i POPALL na końcu.
    Dlaczego?

    0 0