sfihnuia 发表于 2009-9-23 17:24:48

编译错误请教!!!

新手上路,问个小问题:
我用的是IAR for AVR
在一个简单的关于看门狗的工程里,包含了#include <iom8.h>这个文件 ,但结果会出现以下错误:
identifier "WDTOE" is undefined
identifier "WDE" is undefined
identifier "WDP2" is undefined
identifier "WDP1" is undefined
我在iom8.h文件中看了,有以下定义

#ifdef __IAR_SYSTEMS_ASM__
#ifndef ENABLE_BIT_DEFINITIONS
#defineENABLE_BIT_DEFINITIONS
#endif /* ENABLE_BIT_DEFINITIONS */
#endif /* __IAR_SYSTEMS_ASM__ */

#ifdef ENABLE_BIT_DEFINITIONS
....
/* Watchdog Timer Control Register */

#define    WDTOE    4
#define    WDCE   4
#define    WDE      3
#define    WDP2   2
#define    WDP1   1
#define    WDP0   0
......
所以我就在想可能是没有定义__IAR_SYSTEMS_ASM__这个造成的,但我在IAR设置里看了有以下设置
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_484565.jpg
(原文件名:QQ截图未命名.jpg)
说明是定义了__IAR_SYSTEMS_ASM__的,但为什么还会出错呢?难道是别的配置问题,请高人指点。。。。

sfihnuia 发表于 2009-9-23 17:29:54

在程序中使用到的语句如下:
void watchdog_init(void)
{
WDTCR |= ((1 << WDTOE) | (1 << WDE));         /*????*/
WDTCR = ((1<< WDE) | (1 << WDP2) | (1 <<WDP1)); /*?????1S*/
}
其中WDTCR也是定义在iom8.h这个头文件中,但这一个却没有报错说没有定义,有点郁闷。。。。。

sfihnuia 发表于 2009-9-23 17:57:53

问题找到了,还是出在IAR的配置上,有一选项没有选上

tx900901 发表于 2010-8-23 16:17:07

引用图片【楼主位】sfihnuia
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_18/ourdev_484565.jpg
(原文件名:QQ截图未命名.jpg)
页: [1]
查看完整版本: 编译错误请教!!!