util\delay.h __builtin_avr_delay_cycles expects an integer c

C,C++,C#

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
remusator
Ultimate člen
Ultimate člen
Príspevky: 2245
Dátum registrácie: 28 Apr 2010, 00:00
Vek: 34

util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa remusator » 16 Nov 2012, 16:34

Ahojte,
pri pokuse skompilovať zdrojáky od bobovej prototypovacej dosky mi vyhadzuje chybu.
c:\program files\atmel\avr tools\avr toolchain\bin\../lib/gcc/avr/4.6.2/../../../../avr/include/util/delay.h:246:28: error: __builtin_avr_delay_cycles expects an integer constant.
Jedná sa o časť kódu

Kód: Vybrať všetko

#if defined(__DELAY_ROUND_DOWN__)
		__ticks_dc = (uint32_t)fabs(__tmp);

	#elif defined(__DELAY_ROUND_CLOSEST__)
		__ticks_dc = (uint32_t)(fabs(__tmp)+0.5);

	#else
		//round up by default
		__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
	#endif

	__builtin_avr_delay_cycles(__ticks_dc);
Chyba je v poslednom riadku.

Neviete, čo by to mohol byť za problém ? Pred rokom som kompiloval ten istý zdroják úplne bez problémov. Asi som mal inú verziu AVR Studia (predtým 4, teraz tiež 4ku, ale asi novší build) alebo GCC.

Link na zdrojáky. Podla mňa sa ale jedná o chybu v knižnici delay alebo niečo s AVR toolchainom, lebo s tými súbormi som nehýbal :/
0


Používateľov profilový obrázok
remusator
Ultimate člen
Ultimate člen
Príspevky: 2245
Dátum registrácie: 28 Apr 2010, 00:00
Vek: 34

Re: util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa remusator » 16 Nov 2012, 16:49

Diky broňááá.

Mám pocit, že ty si nečítal čo je v tých topicoch popísané. Len si to tresol do googleu a dal mi sem link. Lebo prvé 3-4 linky som pozeral a riešenie som akosi nenašiel..
0

Používateľov profilový obrázok
awen
Power user
Power user
Príspevky: 609
Dátum registrácie: 11 Feb 2009, 00:00
Bydlisko: Bratislava
Vek: 36

Re: util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa awen » 16 Nov 2012, 16:52

v hlavickovom subore delay.h sa docitas toto

Kód: Vybrať všetko

Note: The new implementation of _delay_ms(double __ms) with 
__builtin_avr_delay_cycles(unsigned long) support is not backward compatible. 
User can define __DELAY_BACKWARD_COMPATIBLE__ to get a backward compatible delay
although this will be deprecated in future. 
takze mozes pridat

Kód: Vybrať všetko

#define __DELAY_BACKWARD_COMPATIBLE__
pred

Kód: Vybrať všetko

#include <util/delay.h>
0

Používateľov profilový obrázok
awen
Power user
Power user
Príspevky: 609
Dátum registrácie: 11 Feb 2009, 00:00
Bydlisko: Bratislava
Vek: 36

Re: util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa awen » 16 Nov 2012, 16:54

remusator napísal:Diky broňááá.

Mám pocit, že ty si nečítal čo je v tých topicoch popísané. Len si to tresol do googleu a dal mi sem link. Lebo prvé 3-4 linky som pozeral a riešenie som akosi nenašiel..
Mam pocit, ze ani ty, pretoze hned v druhom je to vyriesene presne tak ako som ti sem napisal.
0

Používateľov profilový obrázok
remusator
Ultimate člen
Ultimate člen
Príspevky: 2245
Dátum registrácie: 28 Apr 2010, 00:00
Vek: 34

Re: util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa remusator » 16 Nov 2012, 16:59

Awen, diky.
0

alidedko

Re: util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa alidedko » 16 Nov 2012, 17:05

awen napísal: Mam pocit, ze ani ty, pretoze hned v druhom je to vyriesene presne tak ako som ti sem napisal.
:supz:

Používateľov profilový obrázok
remusator
Ultimate člen
Ultimate člen
Príspevky: 2245
Dátum registrácie: 28 Apr 2010, 00:00
Vek: 34

Re: util\delay.h __builtin_avr_delay_cycles expects an integer c

Príspevok od používateľa remusator » 16 Nov 2012, 17:25

Dík teda obom :oops:
A poprosím modov o LOCK, je to vyriešené :)
0

Napísať odpoveď