飞思卡尔定时中断程序3.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2D64定时器中断和频率捕捉中断冲突问题 ????一、首先大致功能: ????1:四路频率捕捉中断,要求可同时输入四路,也可任意输入一路、两路或者三路(10~2.5KHz)。 ????2、将捕捉到的频率通过四路PWM依次输出,要求实时、稳定、输入多少输出就为多少(误差:千分之二)。 ????3:定时器中断,1毫秒中断一次。利用定时器屏蔽10Hz(100ms)以下的频率或者无频率输入时,置为0,屏蔽输出。 ????二、调试过程? ????1、开始使用定时器中断和频率捕捉中断,频率捕捉中断开通方法:初始化四路全部开通,?进入第一路捕捉中断,开通第二路捕捉中断,关闭第一路捕捉中断? ??????????进入第二路捕捉中断,开通第三路捕捉中断,关闭第二路捕捉中断? ??????????进入第三路捕捉中断,开通第四路捕捉中断,关闭第三路捕捉中断? ??????????进入第四路捕捉中断,开通第一路捕捉中断,关闭第二路捕捉中断形成一个环状,只有当频率全部有输入时才能采集正常,有任意一路没有输入时都将停止中断的执行。? ????存在问题,当四路频率全部输入时,捕捉正常,但当只有一路或者两路或者三路输入时,能进入中断的那几路也只能响应一次中断。程序如下: #pragma?CODE_SEG?__NEAR_SEG?NON_BANKED interrupt?void????MDC_ISR()?????//定时器1ms中断一次 { ????CpuCounter++;???????//工作指示灯计数器,500ms翻转一次 ????if(ptflag0==1)????//10Hz以下或者无输入时计数,进入捕捉中断标志和计数清零,中断结束时打开标志 ????{?????? ????????ptcount0++; ????} ????if(ptflag1==1)? ????{????? ????????ptcount1++; ????} ????if(ptflag2==1)? ????{????? ????????ptcount2++; ????} ????if(ptflag3==1)? ????{????? ????????ptcount3++; ????}? ????if(ptcount0100)??//10Hz以下或者无输入时不允许输出 ????{ ????????ptcount0=0;?????//计数清零 ????????flagECT0=0;?????//标志清零 ????????fin1=0;?????????//频率置为0 ????????PTH_PTH7=0;?????//指示灯熄灭 ????????PWME=PWME0xfc;?//不允许输出 ????} ????if(ptcount1100)? ????{ ????????ptcount1=0; ????????flagECT1=0;? ????????fin2=0; ????????PTH_PTH6=0;? ????????PWME=PWME0xf3; ????} ????if(ptcount2100)? ????{ ????????ptcount2=0; ????????flagECT2=0;? ????????fin3=0; ????????PTH_PTH5=0;? ????????PWME=PWME0xcf; ????} ????if(ptcount3100)? ????{ ????????ptcount3=0; ????????flagECT3=0;? ????????fin4=0; ????????PTH_PTH4=0;? ????????PWME=PWME0x3f; ????}? ???????? ????if(CpuCounter=500)??//处理器工作指示灯 ????{??????? ????????cpuflag=1; ????????CpuCounter=0; ????} ????MCFLG_MCZF=1;?? } interrupt?void?PT3_isr()? {? ????DisableInterrupts;??//总中断关闭 ????ptflag3=0;??????????//清除无输入或者10Hz以下频率标志 ????ptcount3=0;?????????//清除无输入或者10Hz以下频率计数器 ????TIE_C0I?=?1;???//开放ECT0局部中断???? ????TFLG1_C3F=1;??????//中断标志寄存器对C3F清零 ????//newcount3=TC3;?//读一次T

文档评论(0)

wuhuaiyu002 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档