Problém s kompilací programu nf DDS generátoru na ATmega16

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Milda134
Příspěvky: 65
Registrován: 11 zář 2013, 02:00
Bydliště: jižně od Vyškova
Kontaktovat uživatele:

Problém s kompilací programu nf DDS generátoru na ATmega16

#1 Příspěvek od Milda134 »

Mám doma tento oscilátor:
https://chinese-electronics-products-te ... ested.html
, který je funkční, ale na stránce níže je nová verze firmware
https://github.com/dev26th/avr_dds_20
při otevření souboru makefile ve winawr a pokusu o kompilaci vypíše hlášku viz obrázek níže. ve všech verzích winawr je to stejné a v AVR Studiu taktéž
starší verze fw šly bez problému, ale tady fakt nevím, soubor jsem také připojil.
Dnes bych to už neřešil, ale když už to leží doma . . .
Díky za případnou pomoc.
Přílohy
winawr chyba.jpg
avr_dds_20-master.zip
(89.8 KiB) Staženo 52 x

nixdorf
Příspěvky: 540
Registrován: 06 kvě 2017, 02:00

#2 Příspěvek od nixdorf »

asi by som skúsil novší WinAVR, ten čo máš rozbehaný je z 2007 so starým gcc. Alebo skús upraviť v makefile riadok 125 zo -std=gnu99 na -std=c99 , i keď to je taký mačkopes trocha (gnu99 má znamenať c99 s gnu extensions) a napriek tomu, že je ten gnu99 svič na commandline, tak naň hádže fekál: "using gnu89".

//edit: podľa tohto changelogu majú byť inline funkcie podporované až od 4.3, vo WinAVR ti beží GCC 4.2.2, takže jednoznačne stiahni novšiu verziu, táto verzia kompilátora z 2007 ešte nemá plne implementovaný C štandard 1999.
Možno bude stačiť vymeniť iba samotný gcc toolchain, ale to radšej asi stiahni celý winavr v celku.
Novšia verzia avr-gcc by mala tiež adresovať tie neexistujúce definicie infinity

Uživatelský avatar
Milda134
Příspěvky: 65
Registrován: 11 zář 2013, 02:00
Bydliště: jižně od Vyškova
Kontaktovat uživatele:

#3 Příspěvek od Milda134 »

Omlouvám se ta chyba byla kvůli tomu, že jsem zkoušel starší verze a tak to přehrálo novější

ve verzi
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.

stále zůstává ta chybová hláška o kterou mi jde především

Compiling C: main.c
avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c -o main.o
main.c: In function 'pulse_updateDisplay':
main.c:1082: error: 'INFINITY' undeclared (first use in this function)
main.c:1082: error: (Each undeclared identifier is reported only once
main.c:1082: error: for each function it appears in.)
main.c: In function 'pulse_onLeft':
main.c:1096: error: 'INFINITY' undeclared (first use in this function)
main.c: In function 'pulse_onRight':
main.c:1115: error: 'INFINITY' undeclared (first use in this function)
main.c: In function 'pulse_onStart':
main.c:1138: error: 'INFINITY' undeclared (first use in this function)
make.exe: *** [main.o] Error 1

hledal jsem, zkoušel a nic jsem nenašel, jestli je tam nějaké kurvítko tak jsem ho nenašel
Přílohy
winawr chyba 2.JPG

nixdorf
Příspěvky: 540
Registrován: 06 kvě 2017, 02:00

#4 Příspěvek od nixdorf »

Okej, to zmizli už problémy s inline. Hoď navrch do main.c, napríklad na riadok 25 za includy, nasledovné

Kód: Vybrat vše

#include <math.h>
alebo, ak to nepomôže,

Kód: Vybrat vše

#ifndef INFINITY
#define INFINITY (1.0/0.0)
#endif
a malo by to zbuildiť.

Znova, schopný C99 kompilátor takéto makro musí poznať.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#5 Příspěvek od ZdenekHQ »

nixdorf píše:...a malo by to zbuildiť.
To je krásný slovo... :D
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Milda134
Příspěvky: 65
Registrován: 11 zář 2013, 02:00
Bydliště: jižně od Vyškova
Kontaktovat uživatele:

#6 Příspěvek od Milda134 »

Teď to v pohodě prošlo, jenom to nevleze do ATmega16, bin má 121,2%
oba ty zápisy fungovaly téměř stejně. Rozdíl byl v desetinkách procenta zaplnění paměti
Naposledy upravil(a) Milda134 dne 07 říj 2022, 16:14, celkem upraveno 1 x.

nixdorf
Příspěvky: 540
Registrován: 06 kvě 2017, 02:00

#7 Příspěvek od nixdorf »

Jo, profesná deformácia. Stále viac tolerujem slová ako "thready" či "interfejs" než ako "vlákna", "nite" či nebodaj dokonca "medzitvárie", dybagovanie ako "odchrobákovanie", shell ako "škrupina" a tak ďalej podobným štýlom.
Výnimka 0x01DEADBEEF - neplatný popisovač vlákna. A babo raď, čo sa tým myslelo, keďže je to v slovenčine mišmaš a technik si musí invalid thread handle domyslieť.
No a ešte tí, ktorí puritánsky volajú po Jazyku Symbolických Adries, pretože asembler je predsa nástroj, ktorý to tam prevedie...

@Milda, čas zaviesť kód do nejakej namapovanej ROM :)
Naposledy upravil(a) nixdorf dne 07 říj 2022, 16:20, celkem upraveno 1 x.

Uživatelský avatar
Milda134
Příspěvky: 65
Registrován: 11 zář 2013, 02:00
Bydliště: jižně od Vyškova
Kontaktovat uživatele:

#8 Příspěvek od Milda134 »

Nevleze to tam, má to 121% 8O 8O

nixdorf
Příspěvky: 540
Registrován: 06 kvě 2017, 02:00

#9 Příspěvek od nixdorf »

Do separátne namapovanej pamäti, nie v tej čo má interne atmega, tzn. doplniť obvod o flash/EEPROM prípadne zaviesť nejaký bootloader ak treba.
No alebo sa vrátiť k starej verzii. Alebo zosekať veci, ktoré ti v tejto netreba

Uživatelský avatar
Milda134
Příspěvky: 65
Registrován: 11 zář 2013, 02:00
Bydliště: jižně od Vyškova
Kontaktovat uživatele:

#10 Příspěvek od Milda134 »

Tam žádná jiná paměť není, to je hotový vercajk viz odkaz výše, zkusím pohledat, co z toho zrušit, díky moc za radu.

Uživatelský avatar
Habesan
Příspěvky: 6924
Registrován: 12 led 2009, 01:00
Bydliště: Plzeňsko
Kontaktovat uživatele:

#11 Příspěvek od Habesan »

A což takhle odpájet ATmegu16 a připájet tam ATmegu32 ???
Sháním hasičák s CO2 "sněhový", raději funkční.
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)

Uživatelský avatar
Milda134
Příspěvky: 65
Registrován: 11 zář 2013, 02:00
Bydliště: jižně od Vyškova
Kontaktovat uživatele:

#12 Příspěvek od Milda134 »

Už jsem se na to díval, těch kusů je víc, tak to řeším

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“