PIC单片机 C编程技巧(7)
发布时间:2021-06-06
发布时间:2021-06-06
3、浅谈 PICC 的位操作 、 处理器对位操作是最高效的, 由于 PIC 处理器对位操作是最高效的,所以把一些 BOOL 变 量放在一个内存的位中, 量放在一个内存的位中,既可以达到运算 速度快,又可以达到最大限度节省空间的目的。 速度快,又可以达到最大限度节省空间的目的。在 C 中的位操 作有多种选择。 作有多种选择。 ********************************************* 如:char x;x=x|0B00001000; /*对 X 的 4 位置 1。*/ 对 。 char x;x=x&0B11011111; /*对 X 的 5 位清 0。*/ 对 。 把上面的变成公式则是: 把上面的变成公式则是: #define bitset(var,bitno)(var |=1<<bitno) #define bitclr(var,bitno)(var &=~(1<<bitno)) 则上面的操作就是: 则上面的操作就是:char x;bitset(x,4) char x;bitclr(x,5) ************************************************* 但上述的方法有缺点,就是对每一位的含义不直观, 但上述的方法有缺点,就是对每一位的含义不直观,最好是能 在代码中能直观看出每一位代表的意思, 在代码中能直观看出每一位代表的意思, 这样就能提高编程效率,避免出错。 这样就能提高编程效率,避免出错。如果我们想用 X 的 0-2 位 分别表示温度、电压、 分别表示温度、电压、电流的 BOOL 值可以 如下: 如下: unsigned char x @ 0x20; /*象汇编那样把 X 变量定义到一个 象汇编那样把 固定内存中。 固定内存中。*/ bit temperature@ (unsigned)&x*8+0; /*温度 温度*/ 温度