[C语言] 请教,资源紧张的情况下用什么样的程序结构?

[复制链接]
coody 发表于 2014-10-17 18:56 | 显示全部楼层
MEGA8,8M晶振。
单是这个“1、任务A需要每500us调用一次,任务执行周期350us,无法分解。”
就占掉CPU 70%的时间了,别的程序还要那么快,别以为M8是神器,这货速度没你想得那么快。
跑16M还好办。
xlsbz 发表于 2014-10-17 21:38 | 显示全部楼层
winter1999 发表于 2014-10-17 15:49
谢谢回复。
捕捉不是周期性的,有时几十us有时几百us甚至ms级别,不定。
----

有时几十us有时几百us甚至ms级别

难道  1ms小于1us么?

怎么成了甚至ms级别???

bobde163 发表于 2014-10-18 16:29 | 显示全部楼层
各位大神在进行指导,希望楼主能解决
 楼主| winter1999 发表于 2014-10-20 08:41 | 显示全部楼层
xlsbz 发表于 2014-10-17 21:38
有时几十us有时几百us甚至ms级别

难道  1ms小于1us么?

因为周期跨度比较大
 楼主| winter1999 发表于 2014-10-20 08:41 | 显示全部楼层
bobde163 发表于 2014-10-18 16:29
各位大神在进行指导,希望楼主能解决

谢谢
原野之狼 发表于 2014-10-20 08:57 | 显示全部楼层
350US的任务不要放到中断里 中间可以插入一些标志检查点
高优先级的放到中断里做  力求短小精悍
cjseng 发表于 2014-10-20 22:14 | 显示全部楼层
我的办法就是给硬件打个补丁,用一个STM32代替原先的MCU。画一块小板子,把用到的引脚转换成原先mcu的引脚,这样硬件不用大改,程序写起来也方便。
Jack315 发表于 2014-10-22 07:15 | 显示全部楼层
winter1999 发表于 2014-10-17 15:49
谢谢回复。
捕捉不是周期性的,有时几十us有时几百us甚至ms级别,不定。
----

使用状态机是个好主意。LZ可试试 IAR 的 visualSTATE。

定时要求高的功能考虑放在 ISR 里直接运行,其它的功能则交给状态机负责。
tuzihog 发表于 2014-10-22 19:10 | 显示全部楼层
不错,关注一下
Mcuzone_xyz 发表于 2014-10-23 13:50 | 显示全部楼层
zhaoyu2005 发表于 2014-10-16 10:36
你这不是自找麻烦么,有硬件资源的当然硬件资源优先,没有的才模拟。比如595你用硬件spi,发送数据不用管 ...

:handshake同意,换成硬件估计就不会这么捉急了,代码量也小了
efen 发表于 2014-10-23 16:51 | 显示全部楼层
只能把其它任务拆分在150us了,再考虑那两捕捉中断,估计得100us内,M8也只执行800条指令
llsluoluo 发表于 2016-2-25 21:49 | 显示全部楼层
winter1999 发表于 2014-10-16 09:22
谢谢,ms级的延时是没有的。但是有的任务执行起来耗费的时间比较多,已经尽量的拆分。但还是做不到us级别 ...

深圳天微电子股份原厂 有完全替代合泰1621和1622  性价比高于合泰   加我qq2208962322   刘生18503002452  可以免费提供样品和技术支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部