打印
[8/16-bit MCU]

基于飞思卡尔ECT的一种PWM占空比和频率的测量方法

[复制链接]
2808|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 qiangxiaochen 于 2014-8-6 17:22 编辑

最近在搞PWM占空比和频率的测量,思路是使用ECT模块的输入捕捉功能,话不多说,直接上代码:
//======================================================//
//ect.c
//======================================================//
#include    "ect.h"      
void ECTInit(void)
{
   //ECT初始化
    ECT_TIOS_IOS0 = 0;    //Ch0 as input capture
    ECT_TIE_C0I = 1;      //Ch0 中断使能
    ECT_TCTL4_EDG0A = 1;  //检测上升沿,由于是测量PWM上空比,所以先开启上升沿,进入中断后,再开启下降沿检测
    ECT_TCTL4_EDG0B = 0;
    ECT_TSCR2 = 2;        //总线分频
    ECT_TSCR1 = 1;        //开启定时器
}
#pragma  CODE_SEG     NON_BANKED
interrupt void  VectorNumber_Vectch0 void ECT0_ISR(void)
{
    static INT16U buf[4],RTime,Time,Dty,Fre;
    static INT8U i;
    ECT_TCTL4_EDG0B = 1;            //开启下降沿检测,
    ECT_TCTL1 = ECT_T标志寄存器1_C0F_MASK; //中断标志清除
    buf[i++] = ECT_TC0;             //记录触发中断时间点
    if(i == 4)
    {
       i = 0;
       RTime = buf[2] - buf[1];     //从1开始是因为第一次进入中断,开启下降沿检测时,在随后的一个下降沿里,中断不会响应,即下降沿开启后有一定的延时才会引起中,
       Time = buf[3] - buf[1];
       Dty =(INT8U)(RTime * 100ul / Time);
       Fre =(INT16U)(11000000ul / Time);//11000000 = 11 * 10e6,是总线分频后的频率
       //将ECT_TC0和TCNT清零,TCNT需要分开清零
       ECT_TSCR1_TEN = 0;
       ECT_TIOS_IOS0 = 1;
       ECT_TCNTHi = 0;
       ECT_TCNTLo = 0;
       ECT_TC0 = 0;
       ECT_TSCR1_TEN = 1;
       ECT_TIOS_IOS0 = 0;
    }
}
#pragma CODE_SEG DEFAULT      

相关帖子

沙发
FSL_TICS_A| | 2014-8-6 15:41 | 只看该作者
谢谢楼主分享,如果加文字说明和图片的话,大家了解起来会更方便哦!

使用特权

评论回复
板凳
qiangxiaochen|  楼主 | 2014-8-6 17:28 | 只看该作者
版主想要什么图片和文字说明呢?另外我还有一事问版主,


如上图,我想要检测PWM波的占空比和频率,
那么我是先开启上升沿检测,
    ECT_TCTL4_EDG0A = 1;  
    ECT_TCTL4_EDG0B = 0;
这样当PWM波有个上升沿时,进入中断,然后再开启下降沿检测,
    ECT_TCTL4_EDG0A = 1;  
    ECT_TCTL4_EDG0B = 1;
现在问题来了,如上图,图中第一个上升沿0到来后,第一次进入中断,然后开启下降沿检测,然后继续检测,当出现下降沿1时,程序不会进入中断,然后直到下降3出现后,程序才会进入中断。
不知我描述的大家明白吗?
明白的话,大家讨论下,是怎么回事呢?
版主,这个是怎么回事呢?

使用特权

评论回复
地板
FSL_TICS_A| | 2014-8-7 15:19 | 只看该作者
你好,楼主!
图贴出来形象很多啊,
我想是不是可能,当MCU检测到上升沿0后,进入中断,而在中断函数执行过程中就有下降沿过来,导致被忽略啊。
你测试时用的PWM的频率是多少?

使用特权

评论回复
5
qiangxiaochen|  楼主 | 2014-8-12 10:04 | 只看该作者
PWM的频率是1K,占空比是50%

使用特权

评论回复
6
庄生晓梦| | 2018-7-18 09:45 | 只看该作者
你好,请问这个问题你解决了吗,希望能得到你的帮助

使用特权

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

本版积分规则

17

主题

69

帖子

3

粉丝