硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2593|回复: 6
收起左侧

[μCOS-III] uCOS-III中开启硬件定时器

[复制链接]

2

主题

3

回帖

2

积分

新手上路

积分
2
发表于 2017-5-1 13:12:09 | 显示全部楼层 |阅读模式
       在uCOS-III中开启硬件定时器,产生周期性的PWM波,以驱动步进电机,我开启的是硬件定时器3,  以100us周期性进入中断,
  在有uCOS-III下开启的效果比在裸跑(没加实时系统)下慢了4倍多。大家遇到过这种问题吗?
图片1.png
图片2.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2017-5-1 20:41:18 | 显示全部楼层
在中断的进入和退出的地方加个IO翻转,示波器测试下你的这些函数实际执行了多少时间,是不是已经超过100us的周期了。

另外把你的这个函数改改,中断里面严重禁止调用这个delay_us这种函数,太影响实时性了。
回复

使用道具 举报

2

主题

3

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-5-1 21:39:06 | 显示全部楼层

回 eric2013 的帖子

eric2013:在中断的进入和退出的地方加个IO翻转,示波器测试下你的这些函数实际执行了多少时间,是不是已经超过100us的周期了。

另外把你的这个函数改改,中断里面严重禁止调用这个delay_us这种函数,太影响实时性了。 (2017-05-01 20:41) 
好的,我测试一下,谢谢!
回复

使用道具 举报

4

主题

41

回帖

53

积分

初级会员

积分
53
发表于 2017-5-2 09:56:38 | 显示全部楼层
http://www.armbbs.cn/forum.php?mod=viewthread&tid=20707
pwm输出用这个例子比较好,中断的话应该不会太精确
回复

使用道具 举报

2

主题

3

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-5-4 11:11:42 | 显示全部楼层

回 eric2013 的帖子

eric2013:
在中断的进入和退出的地方加个IO翻转,示波器测试下你的这些函数实际执行了多少时间,是不是已经超过100us的周期了。

另外把你的这个函数改改,中断里面严重禁止调用这个delay_us这种函数,太影响实时性了。
      在定时器3中断函数进入时加了IO翻转,用示波器测得那个管脚输出变化,加uCOS-III后和不加(裸机)数据大致相同,原来的现象应该是加delay_us的原因,谢谢啦!

加uCOS-III

加uCOS-III

裸机

裸机
回复

使用道具 举报

2

主题

3

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2017-5-4 11:12:55 | 显示全部楼层

回 szduan 的帖子

szduan:http://www.armbbs.cn/forum.php?mod=viewthread&tid=20707
pwm输出用这个例子比较好,中断的话应该不会太精确 (2017-05-02 09:56) 
好的,谢谢!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2017-5-4 15:08:50 | 显示全部楼层

回 lmydesigner 的帖子

lmydesigner:好的,谢谢! (2017-05-04 11:12) 
[s:130]
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 23:50 , Processed in 0.224867 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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