Witajcie wszyscy szlachetni rycerze władający językiem C!
Przyuczając się do operowania tymże "orężem" natrafiłem na pewien problem który od 3 dni nie daje mi spokoju.
Zanim jednak zacznę opisywać intrygujące mnie zagadnienie kilka słów o karierze "domorosłego programisty" jakim jestem. Moja droga zdobywania wiedzy kręta jest i zahaczająca o źródła internetowe wszelakie. Podstawy elektroniki, liźnięcie asemblera procesorów 8051 w szkole średniej i obecnie na studiach C ułatwiła nieco start w pełnym prądów, napięć, sygnałów i programów świecie. O ATNEL-owskim stylu dowiedziałem się stosunkowo niedawno, pożyczając Blue Booka od znajomego. Stąd też dopiero uczę się nawyków dobrego pisania kodów i odpowiedniej obsługi... i odkładam PLN-y na własną, bardzo mi się spodobała i chcę mieć ową książkę oraz jej następczynie w swojej biblioteczce.
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Działam też na pakiecie-staruszku WinAVR 20100110 4.3.3 z Programer's Notepadem i edytorem Makefile. Poligon testowy stanowi płytka stykowa z ATMEGĄ-8, a do przelewania mojej twórczości do mikroprocesora zwykły programator USB-ASP. Dotychczas jednak kody wszelakie, czy to ostatnimi czasy z książki, czy też z sieci problemów nie do rozgryzienia raczej nie stwarzały.
Chcąc zaprzyjaźnić się ze wskaźnikami, strukturami, typami wyliczeniowymi, callbackami na przykładzie generowanego poprzez program z tego tematu
http://forum.atnel.pl/topic12164.htmltrafiłem na różne błędy w trakcie kompilacji. Świadom tego, że wynikać mogą one zapewne z tego, iż obsługuję wyświetlacz z pomocą innych niż w książce bibliotek (samą książkę mam, ale zasobów jakie są do niej dołączane ów znajomy mi nie dał) zasiadłem do dostosowywania jej wedle swoich potrzeb. Dodam że wyświetlacz LCD HD44780 4x20 z przejściówką I2C na układzie PCF8574AT steruję na co dzień z powodzeniem dzięki bibliotekom z tego oto bloga:
http://moja-elka.blogspot.com/2016/03/modu-i2c-1602-dla-wyswietlaczy-lcd-ze.htmlI wszystko szło pięknie, ilość błędów związanych z brakiem pewnych funkcji spadła w zasadzie do 0 dzięki podglądaniu na bieżąco BB. Aaale stety niestety nie ma tak lekko. Gdyż w miejscach gdzie menu odwołuje się do wyświetlenia stringów z pamięci FLASH dostaję błąd
invalid initializer.
Pliki na których obecnie pracuje spakowałem w zip i dodaję w formie załącznika (Dzięki
Pan_Kracy za podpowiedź) .
A to komunikaty błędów z konsoli
Compiling C: jbmenu.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./jbmenu.lst -std=gnu99 -MMD -MP -MF .dep/jbmenu.o.d jbmenu.c -o jbmenu.o
jbmenu.c: In function 'display_menu':
jbmenu.c:108: error: invalid initializer
jbmenu.c:119: error: invalid initializer
jbmenu.c: In function 'zmiana_wartosci':
jbmenu.c:195: error: invalid initializer
jbmenu.c: In function 'zmiana_wartosci_godzinowych':
jbmenu.c:250: error: invalid initializer
jbmenu.c: In function 'on_off':
jbmenu.c:286: error: invalid initializer
make.exe: *** [jbmenu.o] Error 1
Czy jest ktoś z was w stanie choć naprowadzić mnie na to, gdzie powinienem był szukać błędów? Złe typy, złe odwołania, czy jeszcze coś innego? Będę bardzo wdzięczny za każdą formę pomocy, niekoniecznie przysłowiową "rybę". W razie rażących błędów oraz zbyt długiego tekstu proszę o łagodny wymiar kary
![Puszcza oko ;)](https://forum.atnel.pl/images/smilies/icon_e_wink.gif)