作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一些嵌入式系统工作,有几个问题。我有一个计时器函数,每 100 毫秒触发一次。我现在需要在系统启动后获取实际时间。
目前我的代码是这样的:
struct timer
{
uint8_t millis_100;
uint8_t minute_455;
}
void tick()
{
//fires evry 100ms
timer_task.millis_100++;
}
但是我很困惑这是否是正确的方法,因为我需要检查 millis_100 是否溢出到 0,然后在 ISR 例程中递增它。如果我需要超过 455*2^8-1 那么我需要在 ISR 中放置另一个 if 语句。这是如何使用系统滴答来制作软件计时器的?或者有更优雅的解决方案吗?
最佳答案
如果您担心计时器溢出,为什么不使用 unsigned long
变量?
检查linux内核中定时器的实现timer.c , timer.h
有关更多详细信息,请阅读 LDD3/ch07 中的计时器 API 部分。
关于c - C中定时器滴答声的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278725/
我是一名优秀的程序员,十分优秀!