lsls 发表于 2011-2-23 16:28:26

用IAR AVR 540打开原来的程序时出现现了一个错误。

我现在用IAR AVR 540打开原来用IAR AVR 420A(已格式化了,没有了)写的程序,
它提示Error: Undefined symbol:OCR1A,Error: Undefined symbol:OCR1B,
头文件是 iom88.h
SFR_W_R(0x8A, OCR1B)(iom88.h定义 IAR AVR 540)
SFR_W_R(0x88, OCR1A)
        STS   OCR1A, R19
        STS   OCR1AH, R16
我想向大侠们请教下,出现这个情况是不是IAR AVR 540中iom88.h与IAR AVR 420A中iom88.h 关于OCR1B,OCR1A定义的不同么?
我怎么修改了?

machao 发表于 2011-2-23 21:32:57

首先检查你芯片型号选择设置是否正常。

lsls 发表于 2011-2-24 09:00:04

machao
马老师您好!谢谢您的帮助!
在IAR中我已设置好了芯片,确定了是MEGA88.
在程序中我把   STS   OCR1A, R19更改成了STS   OCR1AL, R19 编译通过.
我只是有些郁闷,在原IAR AVR 420A 中STS   OCR1A, R19 这条语句也能编译通过.

lsls 发表于 2011-2-24 11:48:53

马老师您好!
我看了下CVAVR   中 MEGA88.H   是这么定义的。
#define OCR1AL (*(unsigned char *) 0x88)
#define OCR1AH (*(unsigned char *) 0x89)
#define OCR1BL (*(unsigned char *) 0x8a)
#define OCR1BH (*(unsigned char *) 0x8b)

而IAR         中    iom88.h是这么定义的。
SFR_W_R(0x8A, OCR1B)
SFR_W_R(0x88, OCR1A)

STS   OCR1AL, R19
STS   OCR1A,R19 造成了这个两种不同的结果了?要不要在IAR 中那个地方设置才行了?在线等马老师的解答。
页: [1]
查看完整版本: 用IAR AVR 540打开原来的程序时出现现了一个错误。