完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/1任务
void motor1_task(void *pdata) { OS_CPU_SR cpu_sr=0; while(1) { motor1=0; delay_us(10); motor1=1; delay_us(10); }; } //2任务 void motor2_task(void *pdata) { OS_CPU_SR cpu_sr=0; while(1) { MOTOR2=0; delay_us(10); MOTOR2=1; delay_us(10); }; } 延时函数是 原子的微妙级延时函数,现在只有一个电机会转,另一个没反应,要怎么破呢? |
|
相关推荐
7个回答
|
|
5毫秒一下是没办法做任务切换的,加操作系统用PWM控制十几个电机没有任何问题,只是你的思路完全就是错误的,PWM用STM32的定时器来产生,不要用延时的方法。
|
|
|
|
不要用这个!!
|
|
|
|
那用OSTimeDly(),这个时间太长了,电机跟蜗牛一样慢,还有什么好方法吗?
|
|
|
|
我们的delay_us()是不会引起任务调度的。
|
|
|
|
OS部分有声明,只是我没贴出来!
|
|
|
|
那5毫秒以下的任务间就没法调度,切换了?
|
|
|
|
那用PWM控制10几个电机加操作系统,任务间能实现切换吗? 要是这个方案不行我就只能放弃加操作系统了
|
|
|
|
只有小组成员才能发言,加入小组>>
778 浏览 0 评论
1149 浏览 1 评论
2527 浏览 5 评论
2859 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1068浏览 3评论
190浏览 2评论
453浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 20:01 , Processed in 1.042972 second(s), Total 61, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号