CH423D 按位操作

您好,用CH423扩展16路继电输出,输出参数只能8位一组的操作;能否按位操作其中某一只继电器而不影响其它的继电器状态?我的程序节达如下:

out31=out31&0xFE;CH423_Write(0x4400|out31);TIME(10);//引风机开

out31=out31&0xFD;CH423_Write(0x4400|out31);TIME(10); //鼓风机开

 out31=out31|0x01;CH423_Write(0x4400|out31);TIME(10);//引风机关    

out31=out31|0x02;CH423_Write(0x4400|out31);TIME(10);//鼓风机关

这样程序每次输出操作均是通变量out31一次写入8位一组的数据,能否按位操作只写入其中某一位,请各位大侠指点,谢谢!


你好:

不可以,必须写入字节,一次操作8位。就按你现在这样做有什么问题吗?


你这样写也没有影响其他位控制的继电器啊?


#define turn_on(x)   {out31 &= (~(1<

#define turn_off(x)   {out31 |= (1<

软件也可以类似实现按位操作。


#define turn_on(x)   

{out31 &= (~(1<

#define turn_off(x)   

{out31 |= (1<

软件也可以类似实现按位操作。


RTX截图未命名.png


谢谢版主的解答!


只有登录才能回复,可以选择微信账号登录