搜索
bottom↓
回复: 3

求助:PICC 端口操作宏 问题。

[复制链接]

出0入0汤圆

发表于 2009-9-14 16:36:56 | 显示全部楼层 |阅读模式
以前用CCS编译器,最近转用了PICC的。

定义了端口:
#define   PIN_C3 = 59

端口操作宏:
#define   sbit(port, bit)   port |= (1<<bit)           // 位置1
#define   set(pin)          sbit(*(pin / 8), pin % 8)  // 端口置1

程序中只需调用 set(PIN_C3); 就可以将RC3端口置1了,但在PICC编译环境下这个宏就编译不过了。左右摆弄就不通,望有知道的朋友解答。先谢过!

出0入0汤圆

 楼主| 发表于 2009-9-14 16:42:06 | 显示全部楼层
其它宏:

#define    in(pin)    sbit(*(pin / 8 + 0x80), pin % 8)   // 设为输入
#define    out(pin)   cbit(*(pin / 8 + 0x80), pin % 8)   // 设为输出

利用这些宏,端口操作就好多了。如操作24C02,需要转换端口方向的。只需定义如下定义,方便些:

#define    SCL    PIN_C3
#define    SDA    PIN_C4

void i2c_start (void)
{
    out(SCL);
    out(SDA);                // 设置为输出

    set(SDA);
    set(SCL);                // SCL->H 准备开始

    rst(SDA);                // 在SCL为H时拉低SDA为开始信号
    rst(SCL);

    // in(SDA);              // 设为输入
}

出0入0汤圆

 楼主| 发表于 2009-9-14 17:57:16 | 显示全部楼层
自行解决:

#define  set(pin)         sbit(*(char *)(pin / 8), pin % 8)
#define  rst(pin)         cbit(*(char *)(pin / 8), pin % 8)

出0入0汤圆

发表于 2009-9-14 19:28:35 | 显示全部楼层
为什么不再用CCS了?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 20:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表