永发信息网

求高人:PICTL&=~0x01;PICTL默认赋值为0;何不这样写:PICTL=0x00

答案:2  悬赏:0  手机版
解决时间 2021-01-27 03:11
  • 提问者网友:我们很暧昧
  • 2021-01-26 11:47
求高人:PICTL&=~0x01;PICTL默认赋值为0;何不这样写:PICTL=0x00
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-01-26 13:06
很多时候,我们需要对单字节的SFR中的某一位赋值(0或1),以精确控制硬件设备。

  有的SFR支持位寻址,比如说TCON、P0等,此时,对位的赋值非常简单,只需查询 ioCC2430.h 头文件中 SFR Bit Access 部分的位定义即可:

  P0_0 = 0;//对P0第一位赋值0

  P0_0 = 1;//对P0第一位赋值1

  但有的SFR并不支持位寻址,就如本实验中的PICTL,此时想要对其中的某一位赋值,语法如下:

  PICTL &= ~0x01; //对第1位赋值0

  PICTL |= 0x01; //对第1位赋值1

  大家可以记住&= ~,|=这两个常用的位赋值语法。
全部回答
  • 1楼网友:患得患失的劫
  • 2021-01-26 14:37
无非有两种可能: 1 PICTL 初始值虽然为0,但 在程序运行过程中值会发生更改,(这种更改也可能是来自其他线 程、模块 甚至是其他外部进程)。 2 这段代码是无用代码, 写成 PICTL=0x00更直接。 没有第三种可能了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯