怎么修改程序使之兼容不同版本的HITECH PICC?

[复制链接]
 楼主| 与时俱进 发表于 2013-12-16 21:51 | 显示全部楼层 |阅读模式
发现不同版本c编译器对寄存器的定义不同,比如对于16F690的寄存器OPTION_REG,
在HITECH PICC V9.50里定义是OPTION,而在V9.82里是OPTION_REG,
所以
    OPTION=7;
  在V9.50里可以编译,在V9.82里就通不过。
请问:如果不去修改相应的.H文件,程序应该怎么改才能在这两个编译器环境都通过?
Ryanhsiung 发表于 2013-12-16 21:57 | 显示全部楼层
#if  使用条件编译
 楼主| 与时俱进 发表于 2013-12-17 08:41 | 显示全部楼层
Ryanhsiung 发表于 2013-12-16 21:57
#if  使用条件编译

我考虑过,但是不知道#if后面怎么写。
用#ifndef OPTION不行,因为在.H文件里不是用#define OPTION XXXX定义的。
Ryanhsiung 发表于 2013-12-17 08:46 | 显示全部楼层
与时俱进 发表于 2013-12-17 08:41
我考虑过,但是不知道#if后面怎么写。
用#ifndef OPTION不行,因为在.H文件里不是用#define OPTION XXXX ...

一般来说,编译器会自已预定义一个宏定义 如PICC_8.92   (这个你要去查阅一下PICC使用手册确定一下),然后使用 #if  PICC_8.92 来实现条件编译
yklstudent 发表于 2013-12-17 11:54 | 显示全部楼层
与时俱进 发表于 2013-12-17 08:41
我考虑过,但是不知道#if后面怎么写。
用#ifndef OPTION不行,因为在.H文件里不是用#define OPTION XXXX ...

可以使用的吧
#ifndef OPTION_REG
#define OPTIONE_REG       OPTION
#endif
这样不可以???????
 楼主| 与时俱进 发表于 2013-12-17 14:45 | 显示全部楼层
yklstudent 发表于 2013-12-17 11:54
可以使用的吧
#ifndef OPTION_REG
#define OPTIONE_REG       OPTION

不可以,原因我在3楼说过。
4楼的方法差不多可以解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1290

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

75

主题

1290

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部