Atmel Studio 7.0延时参数问题

2019-03-24 20:21发布

#include <avr/io.h>
#define F_CPU 8000000UL
#include <util/delay.h>
double a=500;
int main(void)
{
_delay_ms(a);
while (1)
    {
     }
}

用Atmel Studio 7.0编译这段程序编译通不过,报错
__builtin_avr_delay_cycles expects a compile time integer constant

但是把double a=500;移到main函数内就可以编译通过

这个是什么原因,希望哪位高手解析一下。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
dcexpert
2019-03-25 12:24
bearphant 发表于 2015-12-23 21:55
在atmel studio 7有办法解决吗?

这与AS7无关,是C编译器的问题。为了得到最好的效率和精度,使用了汇编做延时,就只能使用常数。

如果需要使用变量,最好的方法是自己写一个延时函数,或者在自己的函数中调用系统的延时函数。

一周热门 更多>