首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

28035的eCAP功能

28035的eCAP功能

使用eCAP来检测方波的频率,开始的时候让单片机自己的EPWM产生50Hz的方波,检测到是50,但是当接到外在方波电路的时候就不对了,为什么呢?设置如下。。。

               ECap1Regs.ECEINT.all = 0x0000;             // Disable all capture interrupts禁止所有的捕获中断
                   ECap1Regs.ECCLR.all = 0xFFFF;              // Clear all CAP interrupt flags清除所有的捕获标志位
                   ECap1Regs.ECCTL1.bit.CAPLDEN = 0;          // Disable CAP1-CAP4 register loads禁止加载CAP1-CAP4寄存器
                   ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0;        // Make sure the counter is stopped确保计数器停止计数
                   ECap1Regs.TSCTR = 0;

                   // Configure peripheral registers
                   ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;      // 连续触发模式
                   ECap1Regs.ECCTL1.bit.CAP1POL = 0;          // 上升沿
                   ECap1Regs.ECCTL1.bit.CAP2POL = 0;          // 上升沿
                   ECap1Regs.ECCTL1.bit.CAP3POL = 0;          // 上升沿
                   ECap1Regs.ECCTL1.bit.CAP4POL = 0;          // 上升沿
                   ECap1Regs.ECCTL1.bit.CTRRST1 = 0;          // 不使能重新计数
                   ECap1Regs.ECCTL1.bit.CTRRST2 = 0;          // 不使能重新计数
                   ECap1Regs.ECCTL1.bit.CTRRST3 = 0;          // 不使能重新计数
                   ECap1Regs.ECCTL1.bit.CTRRST4 = 0;          // 不使能重新计数
                   ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;         // 禁止
                   ECap1Regs.ECCTL2.bit.SYNCO_SEL = 2;        // 旁路时钟

                   ECap1Regs.ECCTL1.bit.CAPLDEN = 1;          // 使能捕获单元加载
                   ECap1Regs.ECCTL1.bit.PRESCALE = 0;         // 不分频
                   ECap1Regs.ECCTL2.bit.CAP_APWM = 0;         // 运行在CAP模式下
                   ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0;

                   ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1;        // 开启计数器
                   ECap1Regs.ECCTL1.bit.CAPLDEN = 1;          // Enable CAP1-CAP4 register loads
                  ECap1Regs.ECEINT.bit.CEVT4 = 1;
返回列表