mrightt 发表于 2009-11-12 17:28:26

"F_CPU not defined for <util/delay.h>"

c:/winavr-20070525/bin/../avr/include/util/delay.h:84:3: warning: #warning "F_CPU not defined for <util/delay.h>"
出现这个错误是什么原因呢?用的GCC&AVRSTUDIO

gzhuli 发表于 2009-11-12 17:31:25

在#include <util/delay.h>语句之前

#define F_CPU    你的CPU频率(HZ)

或者在gcc的编译参数中加上-DF_CPU=你的CPU频率(HZ)

qlb1234 发表于 2009-11-12 17:34:41

c:/窗口黄片啊-20070525/二进制/../黄片啊/含/功用/延迟.h:84:3: 警告: #警告 "频率_中央处理器 未 定义 为 <功用/延迟.h>"

以上翻译由人肉快译完成。欲知道更精确结果,请理解好你程序里的每一句话。

gzhuli 发表于 2009-11-12 17:39:16

你的翻译版本太久,赶快升级,新版的“.h”已经能翻译成“点头”了。

mrightt 发表于 2009-11-12 17:40:48

1L,加上了,还是有警告
3L,求最新的版本

gzhuli 发表于 2009-11-12 17:46:11

你加在哪里了,可不可以贴上来看看啊?
我一般是用-DF_CPU的。

mrightt 发表于 2009-11-12 17:49:00

http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_502627.png
(原文件名:QQ截图未命名.png)

mrightt 发表于 2009-11-12 17:49:20

这样对么?

gzhuli 发表于 2009-11-12 17:50:29

重读1楼第一句话。

mrightt 发表于 2009-11-12 17:51:14

8L,我错了。。。

mrightt 发表于 2009-11-12 17:55:39

还有这个warning
c:/winavr-20070525/bin/../avr/include/util/delay.h:89:3: warning: #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"

gzhuli 发表于 2009-11-12 17:57:55

delay.h要求打开编译优化才能准确延时。

mrightt 发表于 2009-11-12 18:01:57

最后一个
../step1.c:18: warning: array subscript has type 'char'

shark 发表于 2009-11-12 18:17:48

哈,人肉翻译:坑坑/步长1坑C:18:警告:数组下标类型是'char' (改为int即可)。

mrightt 发表于 2009-11-12 18:27:38

13L,能说一下原因么?
我改回去了,还是有这个warning

qlb1234 发表于 2009-11-12 18:29:16

唉,各位兄弟还是授之以渔吧,这样帮他难免害了他。
楼主以后见到有错误的时候,双击那条错误信息,就能看到错误的位置了。错误一般就那几种,要么是语法错误(少了个分号之类的),要么是逻辑错误(bit a; a=3;之类的),要么就是像你这种因未定义而无法编译的情况。
总结得不全,楼下的兄弟看到的不妨补充补充。

mrightt 发表于 2009-11-12 18:31:58

15L,谢谢啦,我是新手,好吧,渔在哪儿呢?

gzhuli 发表于 2009-11-12 18:34:42

渔就是:数组下标不能是char类型。

qlb1234 发表于 2009-11-12 18:38:25

不是说了吗?先双击那错误信息,然后光标就会停在有错误的那一行上。然后就根据错误提示来检查检查程序。
../step1.c:18: warning: array subscript has type 'char'
继续人肉快译:“../step1.c:18: 警告: 数组 下标 有 类型 ‘字符'”这就是说,数组下标不应该是字符型的,这也与我们学到的C语言知识吻合。

mrightt 发表于 2009-11-12 18:42:01

17L
谢谢了,问题解决,见笑了

gzhuli 发表于 2009-11-12 18:45:54

要学会看提示信息:
../step1.c:18 表示问题出在 ../step1.c文件第18行。
warning 表示这是警告信息,不理会也能完成编译,但程序有可能工作不正常。
array subscript has type 'char' 是问题的关键,数组下标是字符类型,这有可能引起程序不按设想的方式运行(正常的下标是int类型)。

mrightt 发表于 2009-11-12 18:47:06

20L
恩恩,我一定好好学习

lxzwill 发表于 2010-3-24 15:34:27

学习了,谢谢啊

xjbh001 发表于 2012-8-2 15:51:03

出现这个错误的原因是你把optimization 设置为-00了。

zhcj66 发表于 2014-7-10 08:11:41

gzhuli 发表于 2009-11-12 17:31
在#include 语句之前

#define F_CPU    你的CPU频率(HZ)


谢谢分享,这个问题解决了
页: [1]
查看完整版本: "F_CPU not defined for &lt;util/delay.h&gt;"