Witam serdecznie. Jestem początkującym programistą mikrokontrolerów avr. Większość wiedzy czerpię z internetu, więc nie mam się kogo poradzić w sprawach merytorycznych odnośnie napotkanych problemów. Stąd prośba o pomoc na tym forum.
Wymyśliłem sobie projekt współpracy modułu bluetooth HC-06 (były poruszane wątki tego modułu na tym forum) z Atmegą8A. Idea jest następująca: Przez rs-232 wysyłam cyfrę, znak jest obierany w przerwaniu USARTA, zapisywany w zmiennej globalnej, a następnie przy urzyciu multipleksowania dany znak (konkretniej cyfra) wyświetlana jest na 7-segmentowym wyświetlaczu złożonym z dwóch cyfr.
Wszystko ładnie smiga: funkcje odpowiedzialne za odbior znaku, wysylanie echa odebranego znaku, wyświetlanie konkretnych cyfr przez wyswietlacz. Jedynym problemem jest to, że nie mogę sprawić aby odebrany znak zapisany został do zmiennej globalnej a nastepnie byl wyswietlany.
Uzywająć terminala wysyłam znak, przychodzi echo wyslanego znaku, natomiast wyswietlacz wyswietla caly czas cyfrę odpowiadającą tej, którą zainicjalizowana została zmienna globalna.
Oto i kod:
I jeszcze dla dopelnienia funkcje odpowiedzialne za wyswietlanie na wyswietlaczu:
Bardzo prosze o pomoc. Uzywam zmiennych Volatile, nawet wylaczam na chwile mozliwosc przerwan globalnych (ochrona operacji nieatomowych).
Ciekawa natomiast rzeczą jest, iż jesli przytrzymam dana cyfre na terminalu to wyswietlacz przez krotka chwile wyświetla to co chcę. Natomiast gdy przestane ciągle wysyłac znaku, wyświetlacz zacznie z powrotem wyswitlac stan początkowy zmiennej globalnej.
Proszę o pomoc.
Wymyśliłem sobie projekt współpracy modułu bluetooth HC-06 (były poruszane wątki tego modułu na tym forum) z Atmegą8A. Idea jest następująca: Przez rs-232 wysyłam cyfrę, znak jest obierany w przerwaniu USARTA, zapisywany w zmiennej globalnej, a następnie przy urzyciu multipleksowania dany znak (konkretniej cyfra) wyświetlana jest na 7-segmentowym wyświetlaczu złożonym z dwóch cyfr.
Wszystko ładnie smiga: funkcje odpowiedzialne za odbior znaku, wysylanie echa odebranego znaku, wyświetlanie konkretnych cyfr przez wyswietlacz. Jedynym problemem jest to, że nie mogę sprawić aby odebrany znak zapisany został do zmiennej globalnej a nastepnie byl wyswietlany.
Uzywająć terminala wysyłam znak, przychodzi echo wyslanego znaku, natomiast wyswietlacz wyswietla caly czas cyfrę odpowiadającą tej, którą zainicjalizowana została zmienna globalna.
Oto i kod:
Kod: C / C++
I jeszcze dla dopelnienia funkcje odpowiedzialne za wyswietlanie na wyswietlaczu:
Kod: C / C++
Bardzo prosze o pomoc. Uzywam zmiennych Volatile, nawet wylaczam na chwile mozliwosc przerwan globalnych (ochrona operacji nieatomowych).
Ciekawa natomiast rzeczą jest, iż jesli przytrzymam dana cyfre na terminalu to wyswietlacz przez krotka chwile wyświetla to co chcę. Natomiast gdy przestane ciągle wysyłac znaku, wyświetlacz zacznie z powrotem wyswitlac stan początkowy zmiennej globalnej.
Proszę o pomoc.