[硬件设计]

急求:中断中任务调度问题

[复制链接]
1192|6
手机看帖
扫描二维码
随时随地手机跟帖
隐身的鱼|  楼主 | 2017-5-22 20:34 | 显示全部楼层 |阅读模式
板子主频32m...
需要产生一个100hz的方波,和一个3000hz的方波,
同时需要对100hz采样一个周期,采样频率500m
最后数据处理,
任务如何搭配?
1:不能用查询taskloop的方式吧,如果在任务里做方波,波形会不准。只能放中断里。
2:采样我放到一个7600hz定时器中断(2个波形也在这里做)里,但程序老飞,
3:不采样,中断里只做2个方波,没事。
如何解决?

相关帖子

隐身的鱼|  楼主 | 2017-5-22 22:38 | 显示全部楼层
感觉是起任务时堆栈的问题。中断里发信号起个空任务也会跑飞,不是时间片太长的问题。

使用特权

评论回复
隐身的鱼|  楼主 | 2017-5-22 23:58 | 显示全部楼层
上面有点乱,真理一下,希望能解决,谢谢。 mcu是cortex m0.主程序初始化各硬件模块,就是 while死循环,没有任务调度,内存管理什么的,只是一个查询一个任务函数列表,分了优先级。查到有需要执行的任务,就执行。 除了中断,就只有sendmsg来标记哪个任务启动。这样在while里可以执行。 主时钟32mhz. 需要产生2个方波100hz和500hz. 同时以3000hz速度采样。 3个动作,如何嵌进去? 我的思路好像错了,起了一个7000hz的定时器中断,都放里面执行。 如何让三个同时执行?其实还有些其他不重要的。

使用特权

评论回复
datouyuan| | 2017-5-23 16:49 | 显示全部楼层
方波用pwm实现,采样利用adc中断(调节好adc时间),不做很复杂的运算,就是51的mcu都能完成。
cortex m0更是轻而易举。

使用特权

评论回复
隐身的鱼|  楼主 | 2017-5-24 07:37 | 显示全部楼层
前面的和我用的一样,adc中断,外部中断?a.没这个内部中断,b.不能用adc完成作为标准时间,必须用间隔时间。

使用特权

评论回复
jedy_woody| | 2017-7-2 16:36 | 显示全部楼层
中断处理函数内不会有过多的处理过程。。。

使用特权

评论回复
jedy_woody| | 2017-7-2 16:37 | 显示全部楼层
楼主犯忌讳了

使用特权

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

本版积分规则

3

主题

8

帖子

0

粉丝