我编写了以下代码,以使ATMEGA168A闪烁一个小的led:
#include#include #define F_CPU 1000000UL int main(void) { DDRB = 0b00000010; PORTB = 0b00000000; while(1) { PORTB ^= 1 << 1; _delay_ms(1000); } }
编译器向我发出如下警告:
Warning #warning "F_CPU not defined for"
这是此警告的来源(delay.h)
#ifndef F_CPU /* prevent compiler error by supplying a default */ # warning "F_CPU not defined for" # define F_CPU 1000000UL #endif
我在这里做错了什么?我的声明不正确吗?
您需要定义 F_CPU
在包含之前。您可以在编译时在命令行上执行此操作,也可以将其放在源代码中。定义此符号的目的是让构建系统知道特定CPU的运行速度。(即,您不必以此方式更改实际速度)。
有关讨论,请参见http://www.avrfreaks.net/forum/understanding-fcpu