环球时讯:C语言实用技巧:0x02 - 0xFE = ?

2023-06-21 15:06:14 来源:个人图书馆-新用户3849ayns


(资料图)

如标题,假设Arg1 = 0x02,Arg2 =0xFE,且两者数据类型均为unsigned char,结果是多少呢?

不废话,示例如下:

和你预想的一样吗?

使用场景

嵌入式开发中,我们常用系统定时器(System Timer,ST)定时,比如延时1ms。一般来说,读取ST一个32bit寄存器值就够用了。

需求场景:

假设这样一个情况:使用ST0,我们需要延时1ms,即ST(时钟100MHz)经过1000个tick。第一次读取ST0时间为T1,在while中不断的判断,第二次读取的值T2与T1的差值,如果(T2 - T1)== 1000,则延时1ms时间到。

这里需要注意:ST0不断地累加,独立运行。因此获取T1对应的ticks值是0~0xFFFFFFFF中的任意一个,如果此时T1 = 0xFFFFFFFE,当T2 = 998(0x3E6)时,T2 - T1 = 0x3E6 - 0xFFFFFFFE = 1000,即延时1ms(1000ticks)。

提示:T1、T2数据类型为uint32。

标签:
x 广告
x 广告

Copyright ©  2015-2022 华东公益网版权所有  备案号:京ICP备2022016840号-41   联系邮箱:2 913 236 @qq.com