• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

DSP28335的ECAP怎么测量频率

你中有我 2017-05-16 浏览量:3078
DSP28335的ECAP怎么测量频率,配置已经做好了,也可以进中断了,但是频率怎么算呢
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 不知道你的ECAP是怎么配置的,配置了几个events
    每个ECAP有四个寄存器,CAP1到CAP4,存储的是两个边沿间的时间
    你的28335,工作在150MHz,一个周期就是6.6667ns,用CAP1到CAP4中的值乘以6.6667ns就是两个边沿间的实际时间,再用1去除,就是频率了。

    配置相关代码,看看跟你的一样么,尤其是ECap2Regs.ECCTL2.bit.STOP_WRAP 的值,不同时要更改计算方法。

        ECap2Regs.ECEINT.all = 0x0000;             // Disable all capture interrupts
        ECap2Regs.ECCLR.all = 0xFFFF;              // Clear all CAP interrupt flags
        ECap2Regs.ECCTL1.bit.CAPLDEN = 0;          // Disable CAP1-CAP4 register loads
        ECap2Regs.ECCTL2.bit.TSCTRSTOP = 0;        // Make sure the counter is stopped
    // Configure peripheral registers
        ECap2Regs.ECCTL2.bit.CAP_APWM = 0;
        ECap2Regs.ECCTL2.bit.CONT_ONESHT = 1;      // One-shot
        ECap2Regs.ECCTL2.bit.STOP_WRAP = 3;        // Stop at 4 events
        ECap2Regs.ECCTL1.bit.CAP1POL = 1;          // Falling edge
        ECap2Regs.ECCTL1.bit.CAP2POL = 0;          // Rising edge
        ECap2Regs.ECCTL1.bit.CAP3POL = 1;          // Falling edge
        ECap2Regs.ECCTL1.bit.CAP4POL = 0;          // Rising edge
        ECap2Regs.ECCTL1.bit.CTRRST1 = 1;          // Difference operation
        ECap2Regs.ECCTL1.bit.CTRRST2 = 1;          // Difference operation
        ECap2Regs.ECCTL1.bit.CTRRST3 = 1;          // Difference operation
        ECap2Regs.ECCTL1.bit.CTRRST4 = 1;          // Difference operation
        ECap2Regs.ECCTL2.bit.SYNCI_EN = 1;         // Enable sync in
        ECap2Regs.ECCTL2.bit.SYNCO_SEL = 0;        // Pass through
        ECap2Regs.ECCTL1.bit.CAPLDEN = 1;          // Enable capture units
        ECap2Regs.ECCTL2.bit.TSCTRSTOP = 1;        // Start Counter
        ECap2Regs.ECCTL2.bit.REARM = 1;            // arm one-shot
        ECap2Regs.ECCTL1.bit.CAPLDEN = 1;          // Enable CAP1-CAP4 register loads
        ECap2Regs.ECEINT.bit.CEVT4 = 1;            // 4 events = interrupt

    参考:
    http://blog.csdn.net/wu159632/article/details/7754618
    http://blog.csdn.net/wu159632/article/details/7754611
    • 发布于 2017-05-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1

相关问题

问题达人换一批

DSP28335的ECAP怎么测量频率