2912|2

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

中断嵌套 [复制链接]


主控芯片用的是PIC30F,控制喷油和点火两个执行机构,直接用I/O控制通断。需求是这样通过采集到的转速,精确控制喷油和点火的起始时间和持续时间。
目前尝试了两种做法:一是在转速采集的IC中断中,初始化定时器1,并开定时器中断,然后在定时器1中置为喷油的I/0口,并初始化定时器2,开定时器2中断和清0喷油I/O口;点火与喷油控制策略一样。这样做的问题是即使转速不变,喷油控制的周期也很混乱。并且在2000转以下定时器2的中断进不去。
尝试第二个方法是:喷油和点火类似,以其中一个为例。发动机转一圈360度,用定时器1定时0.1度的时间,然后在中断的弟n1(计算所得)次的时候置位喷油,在N2的时候清0喷油。这个的问题是在低速的时候问题不大,高速就不行了。而且0.1度还满足不了我的控制要求。
希望大家给我支支招。谢谢。
此帖出自编程基础论坛

最新回复

本帖最后由 辛昕 于 2014-11-13 11:56 编辑 中断里只计时和做标志,不要在里面执行具体的io动作,到外边,比如主函数里查询标志再执行。这样中断才能更加准时; 至于时间精度,这个取决于你的定时器溢出周期是否足够精细。 根据你要的时间精度,综合考虑 1.定时器溢出的频率是否满足你的时间精度(至少溢出时间周期不要大于你的时间精度) 2.中断里,即使只是计时和做标志(它们做的动作已经是非常少了)但是在要求测量时间精度比较高的情况下,要判断它们带来的时间消耗是否会影响整个定时中断的周期; 一般尽可能使执行带来的时间远低于中断周期,比如最好是几十比一以上。 在这种情况下,你可能要选择合适的运行主频。 第一种方法没用的,尽量不用。 因为频频开关定时器本身,反而会造成一些不确定的时间误差。 在这种情况下,开多少个定时器都是多的。   详情 回复 发表于 2014-11-13 11:51
点赞 关注
 

回复
举报

7815

帖子

57

TA的资源

裸片初长成(中级)

沙发
 
采用第二种思路,但是有一个问题
此帖出自编程基础论坛
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

板凳
 
本帖最后由 辛昕 于 2014-11-13 11:56 编辑

中断里只计时和做标志,不要在里面执行具体的io动作,到外边,比如主函数里查询标志再执行。这样中断才能更加准时;

至于时间精度,这个取决于你的定时器溢出周期是否足够精细。

根据你要的时间精度,综合考虑
1.定时器溢出的频率是否满足你的时间精度(至少溢出时间周期不要大于你的时间精度)
2.中断里,即使只是计时和做标志(它们做的动作已经是非常少了)但是在要求测量时间精度比较高的情况下,要判断它们带来的时间消耗是否会影响整个定时中断的周期;
一般尽可能使执行带来的时间远低于中断周期,比如最好是几十比一以上。

在这种情况下,你可能要选择合适的运行主频。

第一种方法没用的,尽量不用。
因为频频开关定时器本身,反而会造成一些不确定的时间误差。
在这种情况下,开多少个定时器都是多的。
此帖出自编程基础论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表