witajcie, jestem początkujący w C i postanowiłem napisać program, który wyświetli na 4-cyfrowym segmentowym wyświetlaczu informację z 8-elementowej tablicy. W tej tablicy mogą być cyfry, niektóre litery i niektóre znaki specjalne, w tym kropka. Mimo czterech pól wyświetlacza zdecydowałem się zastosować tablicę 8 (a nie 4) elementów, gdyż zakładam, że można do niej wrzucić tekst: "A.C.E.F.", który by wyświetlił podane litery, oraz zapalił wszystkie kropki między nimi. Cyfry, litery i znaki wyświetlają się prawidłowo. Problem mam z kropką, na którą przeznaczyłem oddzielną zmienną. Moją intencją jest utworzenie takiej zmiennej dot (tak ją nazwałem), żeby po wprowadzeniu np. "0.uP.A" miała wartość 0b00001010, co powinno oznaczać, że w drugiej i czwartej cyfrze od prawej na wyświetlaczu powinna się świecić kropka. Funkcja analizująca zmienną i wyświetlająca kropki we właściwych miejscach na podstawie zmiennej dot działa prawidłowo, jednak sama zmienna przyjmuje dziwne wartości, na przykład dla "A." zmienna ma wartość 0b11111100. Bity w zmiennej są wielokrotnie przesuwane, ale w puste miejsca powinny wskakiwać zera, nie wiem dlaczego w tej zmiennej jest tyle jedynek, skoro powinna pojawić się jedna. Proszę o pomoc.
Piny a-g wyświetlacza podłączone są odpowiednio do portu PB0-PB7
Piny A1-A4 są podłączone przez tranzystory odpowiednio do portu PC0-PC4
KOD:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.