No nieźle, nieźle
Tak więc wziąłem sobie do głowy Wasze rady. Wywaliłem tę lcd_refresh i wróciłem do poprzedniej postaci :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tak samo zrobiłem key_init, wyrzuciłem(zakomentowałem) niepotrzebne na razie funkcje, powołałem zmienną volatile uint8_t fRefresh i main.c wygląda następująco :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w menu.c timer (<- czy jest dobrze opisany?? )
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
dziobak7 napisał(a):
Inna ważna rzecz. Jeśli masz 3 poziom zagnieżdżenia w funkcji, to jest coś nie tak z Twoim rozumieniem kodu (pominę wyjątki bo to nie jest na tyle skomplikowana aplikacja).
3 poziom zagnieżdżenia funkcji - który fragment masz na myśli?
dziobak7 napisał(a):
Następne... jeśli masz gdzieś zmienną typu flaga, z zasady powinna być ustawiana w 1 miejscu (znanym Ci) i testowana oraz ew. gaszona w 2. Dodatkowo, jej zmiana (czyli zapis), prawie zawsze powinna być zabezpieczona operacją atomową (poczytaj o ATOMIC_BLOCK). A jak jest teraz?
Trochę poczytałem o tym, ale czy to jest tak potrzebne do mojego kodu i nie można pozostać przy timerze? Ewentualnie opierając się na powyższym kodzie z timerem i przerwaniami, jakbyś to zrobił, wykorzystując ATOMIC_BLOCK?
dziobak7 napisał(a):
Dodaj do kompilatora flagi:
-Wall -Wextra -Wshadow -pedantic
Masz to wydzielone w opcjach kompilacji w eclipse. Inne flagi są także bardzo przydatne ale powyższe wystarczą by pokazać Ci kilka(naście) potencjalnych błędów jakie popełniłeś. Przyjmij zasadę (na początek) że kod ma się kompilować bez ostrzeżeń.
Gdzie dokładnie mogę to znaleźć w eclipsie? Co do samej kompilacji kodu, nie wyrzuca mi żadnych błędów i ostrzeżeń.