【程序人生---随笔】

笔者简单聊聊生活中的事情,

之4月5号的时候,笔者的自行车突然有一天骑着骑着,就感觉很难骑,转头一看,发现车胎都瘪了首先想到的是补胎,网上购买了一套工具去补胎,
在这里插入图片描述
回来拆了,然后发现发现是一条裂纹,当时想着就补补,第一次补了一次,一打气就崩开了,第二次,一补直接爆了,吓我一跳。

在这里插入图片描述

然后就买了内胎,没买外胎没买外胎没买外胎,啊啊啊,因为当时就看到外胎破了,没想到可能是外胎导致的内胎破了,因为可能是石子这些导致的,真是熟视无睹,结果为后面埋雷了。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

果然不出意外,意外就出现了,7月份的时候,早上骑着还正常,晚上就发现胎瘪了,然后马上想到是肯定是外胎导致的问题,想到没想,立马就买了内胎和外胎都没拆下来看。(后续拆下来,看来还是石头之类磨的,很小的一个洞)

在这里插入图片描述

这就告诉了我们一个道理,有些存在的问题,看到了一定要思考一下,不然后面肯定出问题,不能熟视无睹,一些小错误,会导致后面很多成为无用功,最终还得重新来过。

工作上面也有很多时候碰到这样的问题,但是也是有时候企图蒙混过关到时候还是这个问题还得自己去解决,比如最近的这个timer问题。

之前软件timer就发现了这个问题,软件timer的实现在这篇文章介绍,软件定时器实现
软件timer思想如下图所示,
请添加图片描述
现象如下:
在这里插入图片描述
上方的 id =2,ticks = 32766,指的是,定时器设置的多长时间后产生中断,
背景是:定时一段时间,打印 sys timer thread proc,但是设置时间后,明显时间没到,然后继续中断,直到时间到了,然后打印执行用户call back函数。

  • 定时时间在满足条件的情况,正常肯定是设置时间后,然后就执行用户callback,这种明显是异常。

  • 从48秒 到18秒,经过了30秒,然后时间设置的是32766,时间是32.7s,时间都有很大误差,当时觉得脑子肯定是抽了,才忽略了这个问题。

  • 我们设想一下,如果中断timer时钟频率偏大,则定时指定的时间到了,那么时钟timer的时间没到,则会继续定时,直到定时的时间到,每次定时都早到,所以造成了频繁中断,。

  • 再继续深入想一下,假如中断timer 频率快两倍,则肯定每次设置的时间都早到,而且大概是早到两倍的时间,看上图好像符合这个规律

  • 如果只是中断timer的频率不对,则总的定时应该是正常的,但是总的定时时间还差2s,说明时钟timer也有问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张一西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值