以前用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编译环境下这个宏就编译不过了。左右摆弄就不通,望有知道的朋友解答。先谢过!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
#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); // 设为输入
}
#define set(pin) sbit(*(char *)(pin / 8), pin % 8)
#define rst(pin) cbit(*(char *)(pin / 8), pin % 8)
一周热门 更多>