Domanoid napisał(a):
I czemu nie pojawia się ten warning gdy w d_led.h jest segmenty są ponumerowane tak jak w oryginale czyli od (1<<0) do (1<<7)?
bo zdaje się że nie wykorzystuję w swoich przykładach kropki
nie zauważyłeś ? i pewnie dlatego zapomniałem o tym w książce napisać
związane jest to z kompilatorem i faktem że stałe dosłowne traktuje jako 16-bitowe a problem DOTYCZY tylko tego gdy próbujesz je w postaci zanegowanej zachować w tablicy gdzie każdy jej element jest 8-bitowy - bo tak masz niewątpliwie w kodzie prawda ?
rozwiązania masz dwa, jeśli np masz:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a potem tablicę
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to masz warninga ale możesz:
1. albo napisać to tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli zrobić JAWNE rzutowanie do typu
uint8_t 2. albo wpisać w opcjach kompilatora
-mint8 żeby stałe dosłowne traktował nie jako 16-bitowe o 8-bitowe to warning się nie pojawi (ale tego nie polecam)
3. albo dać tablicę elementów 16-bitowych
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
4. albo całkiem inaczej zdefiniować sobie zapis cyfry - np binarnie o tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wybierz sobie sposób który ci się podoba - tylko może poza tym nr.2
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]