Zdravim vas.
Mam takovy dotaz ohledne zkusenosti s avr studiem 5.
Zatim jsem tam nenasel zadny zpusob, jak k existujicimu projektu pridat dalsi soubory typu *.c a *.h.
V avr studiu 4 jsem zvykly pridavat tyto soubory do source files a header files, ale v pate verzi jsem nic takoveho neobjevil.
Ja jsem poslechl zkusenejsi programatory nez jsem ja a AVR Studio 5 jsem nainstaloval, minutu zkousel, odinstaloval a presel na AVR Studio 4.19. Nemaji to dotazene do konce.
Posledni dobou me docela stve ten AVR toolchain tak mozna prejdu zase z5 na WINAVR az se dokopu k tomu jak to nastavit v konfiguraci…
Tez jsem zkousel, a zpatky nainstaloval AVR Studio 4.19.
Jen me to zajimalo, jestli sem neco prehledl, nebo ne.
Navic mi AVR Studio 5 hazelo chybu ve funkci delay, nejake zavorkovani se mu tam nelibilo, pricemz sem to kontroloval a zadna a zavorka tam nebyla navic, ani nikde nechybela. Tak zkusim, co udela ten sami kod ve verzi 4.19
Mozna chyba s delay je ta, ze pokud ten toolchain nenadefinujes jinak, tak delay podporuje jenom konstanty, ne promenne.
Takze _delay_ms(100) funguje,
ale
Tak problem bude nejspise v pouzitem toolchianu, i kdyz jej nijak nenastavuji, jak pises, coby promenna, ale nechavam tam vzdy konstanty.
Ted mam takovy zajimavy problem, pri pouziti toolchianu 3.3.0.710 mi hazi tu samou chybu i v AVR Studiu 4.19.
A kdyz zkusim spustit AVR Studio bez toolchianu, ale s WinAvr, tak to se mu zas nelibi, a nechce vytvorit.elf soubor.
V pripade pouziti toolchianu vypisuje AVR Studio tyto chyby:
rm -rf Rizeni_systemu.o Rizeni_systemu.elf dep/* Rizeni_systemu.hex Rizeni_systemu.eep Rizeni_systemu.lss Rizeni_systemu.map
c:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\bin\rm.exe: cannot lstat `dep/*': Invalid argument
make: [clean] Error 1 (ignored)
Build succeeded with 0 Warnings…
avr-gcc -mmcu=atmega128 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Rizeni_systemu.o -MF dep/Rizeni_systemu.o.d -c …/Rizeni_systemu.c
In file included from …/Rizeni_systemu.c:3:0:
c:\program files (x86)\atmel\avr tools\avr toolchain\bin../lib/gcc/avr/4.5.1/…/…/…/…/avr/include/util/delay.h: In function ‘_delay_ms’:
c:\program files (x86)\atmel\avr tools\avr toolchain\bin../lib/gcc/avr/4.5.1/…/…/…/…/avr/include/util/delay.h:139:12: error: expected ‘)’ before ‘;’ token
c:\program files (x86)\atmel\avr tools\avr toolchain\bin../lib/gcc/avr/4.5.1/…/…/…/…/avr/include/util/delay.h: In function ‘_delay_us’:
c:\program files (x86)\atmel\avr tools\avr toolchain\bin../lib/gcc/avr/4.5.1/…/…/…/…/avr/include/util/delay.h:216:12: error: expected ‘)’ before ‘;’ token
make: *** [Rizeni_systemu.o] Error 1
Build failed with 2 errors and 0 warnings…
Jen podotykam, ze samotny soubor delay.h jsem nijak neupravoval. Rizeni_systemu.c (177 Bytes)
V C je běžné, že jeden překlep vygeneruje vagon chyb a co je lepší, nemusejí ty chyby ani odkazovat na řádek, kde vznikla (mohou ukazovat až za ni).
Co se týká závorek/uvozovek u hlavičkových souborů: určují složku, kde se prioritně hledá požadovaný soubor. Závorky znamenají složku překladače, uvozovky složku projektu. Tedy uživatelské soubory by měly být v uvozovkách, ostatní v závorkách.