完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ucosII中,想实现Led渐明渐暗的效果.pwm周期是5ms
实现方法:①开定时中断50us,led做100级亮度,刚好50usX100=5ms ②定时中断50us处理完后,直接返回被中断的任务.不作任务切换.(如果做任务切换,这么短的时间,频繁做任务切换,肯定出问题) 不知道大家,使用ucos时,除了tick中断切换任务外.其它中断,都要求做任务切换吗?谈谈大家的看法. |
|
相关推荐
13个回答
|
|
因为出中断要使用OSIntExit()函数,所以会发起一次中断级任务调度。如果想退出中断后返回以前的那个任务,可以在进中断之前将以前的任务设为最高优先级
|
|
|
|
操作系统的核心任务就是不断执行就绪表的就绪任务,中断结束后如果不执行任务切换,那么系统不就停摆了
|
|
|
|
|
|
|
|
所有的中断退出,都要作任务切换啊?像50us那么短的时间中断(一直存在),频繁的做任务切换,这样不好吗?
|
|
|
|
我是想只要有一个tick定时中断,专业用来切换任务,就可以了.其它中断,短定时中断50us或I2C,UART,SPI等外设的中断,中断返回时,可以不用切换任务.直接返回当作的任务.
如,有一个IO状态变化中断,估计会很快,10us左右,进中断,设置几个标示就退出了.如果退出,还调用任务切换,若任务切换花掉10us,那程序就不用跑了啊? |
|
|
|
你的理解不对,因而造成了其他的误解。
|
|
|
|
他的误解在哪里? 我也没想明白。
如果真需要这么短的定时中断 那么在此中断函数里不调用OSIntEnter和OSIntExit可以吗?就是干完一个简单的事,然后直接退出中断返回,就像裸机里的中断一样,可以吗? 这样既可以频繁进入该中断做点事,同时又不会频繁发生任务切换了。 |
|
|
|
还是你理解我的意思.不知道,你有没有这样用过.
|
|
|
|
先说前面:任务切换是分支,由OSIntExit()条件触发的。
再说你的建议:在没有系统调用的中断里,可以不调用这俩API,它们不是必须的。 所以性能有限,如果有高频中断,首先应该考虑硬件能不能承受。 编辑说明:红色部分内容修正 |
|
|
|
我是UCOS新手 还没做过具体东西 只是考虑原理 9楼说得对 高频中断 硬件是个问题
|
|
|
|
对了 顺便说一句 即使在此高频中断函数里不调用OSIntEnter和OSIntExit 但似乎仍然应该把OSIntNesting加1和减1吧 否则系统不知道已经有一层中断了 可能会出问题
|
|
|
|
我的SPI中断接收 就是因为ucos的OSIntEnter(); OSIntExit(); 总是丢字节 把这两条去掉 就要好很多。
|
|
|
|
想请教大家一个问题 我STM32 跑ucosii SPI要接收大量的数据 100K左右 通过SPI中断进行接收 这时候我发现如果在SPI中断里 调用ucos的OSIntEnter(); OSIntExit(); API SPI接收到的数据 总是会少字节 而不调用两个API 情况会好很多 但是也还是丢 裸机的时候测试没问题 我想问各位 除了DMA的方式 如何保证在ucos下 外设的中断都能及时的处理
|
|
|
|
只有小组成员才能发言,加入小组>>
778 浏览 0 评论
1149 浏览 1 评论
2527 浏览 5 评论
2859 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1066浏览 3评论
190浏览 2评论
453浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 09:15 , Processed in 1.311549 second(s), Total 104, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号