单片机/MCU论坛
直播中

7年用户 3经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP 接口/总线/驱动
私信 关注
[问答]

关于28335的ECAP模块

我使用28335的ECAP1通道采集 一个1M的信号,4个捕获寄存器里面的值如下:
    t1= ECap1Regs.CAP1;
    t2= ECap1Regs.CAP2;
    t3= ECap1Regs.CAP3;
    t4= ECap1Regs.CAP4;
按照我的理解,应该t1 再者,我希望捕获到所有的高低沿变化,采用这种方式,是否会有遗漏或隐患???
ECAP1的初始化代码如下:
void SetCap1Mode(void)
{
  ECap1Regs.ECCTL1.bit.CAP1POL = EC_RISING;
  ECap1Regs.ECCTL1.bit.CAP2POL = EC_FALLING;
  ECap1Regs.ECCTL1.bit.CAP3POL = EC_RISING;
  ECap1Regs.ECCTL1.bit.CAP4POL = EC_FALLING;
  ECap1Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;
  ECap1Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;
  ECap1Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;
  ECap1Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;
  ECap1Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;
  ECap1Regs.ECCTL1.bit.PRESCALE = EC_DIV1;
  ECap1Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;
  ECap1Regs.ECCTL2.bit.CONT_ONESHT = EC_CONtiNUOUS;
  ECap1Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;
  ECap1Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;
  ECap1Regs.ECEINT.all=0x0000;//stop all interrupt
  ECap1Regs.ECCLR.all=0xFFFF;//clare all flag
  ECap1Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;// 启动
  ECap1Regs.ECEINT.bit.CEVT4=1;// Enable cevt4 interrupt
}
已退回1积分

回帖(3)

陈越

2017-5-15 17:07:10
你好,请问你的问题解决了么?我也是跟你一样的理解,遇到了同样的问题,请问你是怎么解决的    可以交流一下么    非常谢谢
举报

24不可说

2017-5-15 20:49:56
你可以看看研旭的例程,
希望能帮到你,
有用请采纳答案,O(∩_∩)O谢谢
3 开发例程.zip (21.87 MB)
(下载次数: 600, 2017-5-15 20:49 上传)
举报

韶年如梦

2021-7-8 12:35:17
原因可能是,输入信号的频率过低,导致在ecap的一个周期内无法捕捉到所有的上升沿和下降沿
举报

更多回帖

发帖
×
20
完善资料,
赚取积分