打印

CW32L083 systick如何实现微秒级延时

[复制链接]
4483|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2023-6-11 07:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zchong| | 2023-6-11 08:19 | 只看该作者
读定时器的计时值,判断时间

使用特权

评论回复
板凳
E=MC2U| | 2023-6-11 09:23 | 只看该作者
有那么多timer可以定时us级别,为什么使用tick timer呢? 很多芯片 tick timer(节拍计数器)被固定在1ms/10ms 固定周期中断。

使用特权

评论回复
地板
天意无罪| | 2023-6-11 16:00 | 只看该作者
systick是系统滴答定时器,固定1ms,想实现us级别的计时,用定时器就可以了。

使用特权

评论回复
5
walton1226| | 2023-6-12 10:32 | 只看该作者
void delay_us(u32 nus)//;nus<1800
{
u32 temp;
SysTick->LOAD = 9*nus;//72M
SysTick->VAL=0X00;//清空计数器
SysTick->CTRL=0X01;//使能
do
{
  temp=SysTick->CTRL;//读取当前倒计数值
}while((temp&0x01)&&(!(temp&(1<<16))));//等待时间到达
  SysTick->CTRL=0x00; //关闭计数器
  SysTick->VAL =0X00; //清空计数器
}

使用特权

评论回复
评论
dami 2023-6-25 09:48 回复TA
是的,systick本身就是个简单的滴答定时器,如果设置小一点就能达到us级别。如果你不用作操作系统的话。 只是这个定时器最方便操作系统作滴答时钟用最方便。操作系统的时钟一般不要那么快。 
6
专注于嵌入式| | 2023-6-12 15:32 | 只看该作者
天意无罪 发表于 2023-6-11 16:00
systick是系统滴答定时器,固定1ms,想实现us级别的计时,用定时器就可以了。
...

可以,自己重新给systick进行初始化,关掉中断,用查询模式。可以实现us定时。

使用特权

评论回复
7
天意无罪| | 2023-6-12 22:21 | 只看该作者
专注于嵌入式 发表于 2023-6-12 15:32
可以,自己重新给systick进行初始化,关掉中断,用查询模式。可以实现us定时。 ...

是可以重新配置滴答定时器,这样搞有什么意义呢?为什么不用标准定时器,保持滴答时钟的专有性呢。

使用特权

评论回复
8
专注于嵌入式| | 2023-6-13 09:03 | 只看该作者
天意无罪 发表于 2023-6-12 22:21
是可以重新配置滴答定时器,这样搞有什么意义呢?为什么不用标准定时器,保持滴答时钟的专有性呢。 ...

有时候其他定时器可以用于其他地方,比如PWM,捕获比较什么的。但是systick功能单一,优先使用是最好的。毕竟大部分单片机是不是上操作系统的,systcik空闲下来了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

715

帖子

9

粉丝