OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4815|回复: 6

ucos-ii 中 全局变量 OSTime 总是每一个时钟滴答就++ 那么他加到了65535会咋样呢?是什么语句是么时候让他归零呢?

[复制链接]

9

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
金钱
379
注册时间
2016-8-19
在线时间
28 小时
发表于 2016-8-20 14:14:05 | 显示全部楼层 |阅读模式
ucos-ii 中 全局变量 OSTime 总是每一个时钟滴答就++  那么他加到了65535会咋样呢?是什么语句是么时候让他归零呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-8-20 14:35:38 | 显示全部楼层
加满65535自动清零!自己写个代码测试啊,你就是随便写个u8类型的变量,给它赋个初始值250,你让他加,看到到255的时候加1会不会清零!
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2016-8-20 14:58:11 | 显示全部楼层
举个例子,十进制数,只看个位和十位,1加到99都正常,再加一就是100,个位和十位就是0
65535的十六进制是0xFFFF,再加1就是0x10000,但你的变量是16位的,所以就是0了
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复 支持 反对

使用道具 举报

9

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
金钱
379
注册时间
2016-8-19
在线时间
28 小时
 楼主| 发表于 2016-8-20 15:03:19 | 显示全部楼层
回复 支持 反对

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2016-8-21 12:55:57 来自手机 | 显示全部楼层
有个设置函数,随时可以将其清零,65536不是其最大值,Systick是24位的。
回复 支持 反对

使用道具 举报

3

主题

144

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7342
金钱
7342
注册时间
2016-2-6
在线时间
1863 小时
发表于 2016-8-21 13:05:52 | 显示全部楼层
不管多少位,计数寄存器总是要溢出的,对于系统而言,这个变量也是不需要做溢出处理的,如果用户程序中与计数值有关联,那么就需要做相应的判断,以免出现错误。
回复 支持 反对

使用道具 举报

9

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
金钱
379
注册时间
2016-8-19
在线时间
28 小时
 楼主| 发表于 2016-8-22 07:32:50 | 显示全部楼层
wangyan915205 发表于 2016-8-21 12:55
有个设置函数,随时可以将其清零,65536不是其最大值,Systick是24位的。

"Systick是24位的"这位老师指导的对,谢谢。这个24位的定时器是自动重装载的定时器吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 20:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表