ATNEL tech-forum https://forum.atnel.pl/ |
|
Problem z duszkami na LED atmega8 i kompilator głupieje ? https://forum.atnel.pl/topic19002.html |
Strona 1 z 1 |
Autor: | Marhef [ 15 sie 2017, o 19:21 ] |
Tytuł: | Re: Problem z duszkami na LED atmega8 i kompilator głupieje |
RadekB86 napisał(a): A drugie pytanie dotyczy bardziej kompilatora Jeżeli deklarujesz zmienną subzero w main.c oraz w d_led.c, to tak naprawdę tworzysz dwie różne zmienne. Nie wiem, w którym pliku (nie pamiętam), ale musisz jedną z tych deklaracji dodać ze słówkiem extern (w bluebooku to jest, poszukaj)
a więc tworzę zmienną volatile aby móc ją obsługiwać w przerwaniu Kod: volatile uint8_t subzero2//zmienna oznaczająca temperaturę ujemną i kompilator mi krzyczy że jej nie zadeklarowałem mimo że to zrobiłem w pliku main.c (lub tylko w pliku d_led.c) a jak dodam ją też w pliki d_led.c i w pliku main.c (czyli w 2 plikach jednocześnie) wtedy się kompiluje jednym słowem muszę zadeklarować tą samą zmienną w 2 plikach źródłowych bo pliki z rozszerzeniem *.c to przecież są pliki źródłowe prawda ? więc co za różnica czy jest w main.c czy d_led.c ? Dlaczego tak się dzieje ? |
Autor: | matekogon [ 15 sie 2017, o 19:28 ] |
Tytuł: | Re: Problem z duszkami na LED atmega8 i kompilator głupieje |
Kolego jak wykorzystujesz zmienną w różnych plikach to wystarczy ze w pliku wspolny.h zapiszesz ją extern volatile uint8_t subzero2 a następnie plik wspolny.h dołączysz poprzez include w plikach których ma być uzywana ta zmienna |
Autor: | xentis [ 16 sie 2017, o 06:00 ] |
Tytuł: | Re: Problem z duszkami na LED atmega8 i kompilator głupieje |
RadekB86 napisał(a): Niby wszytko fajnie ale tak sobie myślę czy nie można by to zrobić lepiej bo na wyświetlaczu nr.3 jest widoczna lekka poświata tak jakby cyfry 2 Bo ja to zrobiłem przypisując zgaszony wyświetlacz indeksem tablicy nr.16 Porównaj swoją bibliotekę z książki z tą zamieszczoną w uaktualnieniach na stronie autora książki http://www.atnel.pl/uaktualnienia-programow-do-dvd.html w kodzie od multi_LED był mały babol (nie wiem na jakim etapie został poprawiony i czy "twardy" BB miał już poprawioną)W każdym bądź razie w przerwaniu od licznika gdzie odbywa się multipleksowanie prawie na samym początku jest linijka odpowiadająca za wygaszenie wszystkich wyświetlaczy przed zaświeceniem kolejnego i tu był błąd który powodował wyświetlenie "duszków". Sprawdź może akurat u Ciebie to jest problemem. |
Strona 1 z 1 | Strefa czasowa: UTC + 1 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |