打印

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

[复制链接]
1459|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
与时俱进|  楼主 | 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 来实现条件编译

使用特权

评论回复
5
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
这样不可以???????

使用特权

评论回复
6
与时俱进|  楼主 | 2013-12-17 14:45 | 只看该作者
yklstudent 发表于 2013-12-17 11:54
可以使用的吧
#ifndef OPTION_REG
#define OPTIONE_REG       OPTION

不可以,原因我在3楼说过。
4楼的方法差不多可以解决。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1290

帖子

2

粉丝