F28335_ECAP使用
来源:互联网 发布:制作app软件多少钱 编辑:程序博客网 时间:2024/06/05 13:29
项目要求对工频电压进行过零检测,而为了防止出现误差,应该检测两次过零点的时间间隔是不是大于一定值,因此需要测量两次捕捉的相对时间。
进行两次检测,第一次检测到信号就复位计数器,第二次检测到的结果就是需要的相对时间,可直接使用。
IER |= M_INT4; // Initialize eCAP1/2/3InitECap1Gpio(); ECap1Regs.ECEINT.all = 0x0000; // Disable all capture interruptsECap1Regs.ECCLR.all = 0xFFFF; // Clear all CAP interrupt flagsECap1Regs.ECCTL1.bit.CAPLDEN = 0; // Disable CAP1-CAP4 register loadsECap1Regs.ECCTL2.bit.TSCTRSTOP = 0; // Make sure the counter is stopped// Configure peripheral registersECap1Regs.ECCTL2.bit.CONT_ONESHT = 1; // continueECap1Regs.ECCTL2.bit.STOP_WRAP = 1; // Stop at 2 eventsECap1Regs.ECCTL1.bit.CAP1POL = 0; // Rising edgeECap1Regs.ECCTL1.bit.CAP2POL = 0; // Rising edgeECap1Regs.ECCTL1.bit.CTRRST1 = 1; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST1 = 0; //第一次捕获,复位计数器, //第二次得到的值就是需要的时间ECap1Regs.ECCTL2.bit.SYNCI_EN = 0; // Enable sync inECap1Regs.ECCTL2.bit.SYNCO_SEL = 0x10; // Pass throughECap1Regs.ECCTL1.bit.CAPLDEN = 1; // Enable capture unitsECap1Regs.ECCTL2.bit.REARM = 1;ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; // Start CounterECap1Regs.ECCTL1.bit.CAPLDEN = 1; // Enable CAP1-CAP4 register loadsECap1Regs.ECEINT.bit.CEVT2 = 1; // 1 events = interrupt// Enable eCAP INTn in the PIE: Group 3 interrupt 1PieCtrlRegs.PIEIER4.bit.INTx1 = 1;
每个CAP模块都有一个PIE中断,而CAP模块中又有7个触发源能够触发此中断,因而在相应的中断函数中,要进行识别,或者限制的处理
每次CAP模块捕获wrap的次数后,对应的引脚则被冻结,停止捕获,而ECap1Regs.ECCTL2.bit.REARM = 1;则能解除冻结,同时返回到cap1
因此在中断函数中应该加入
ECap1Regs.ECCLR.bit.CEVT2 = 1; ECap1Regs.ECCLR.bit.INT = 1; ECap1Regs.ECCTL2.bit.REARM = 1;//用于重新启动CAP
- F28335_ECAP使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用++,--
- 使用$@ $!
- 使用
- SoftICE使用(指令使用)
- 使用GraphEdit使用
- 使用HtmlParser使用心得
- 时钟使用使用
- Ubuntu 使用Git 使用
- Ubuntu 使用Git 使用
- GUID使用的使用
- Git使用 tortoisegit使用
- 2013C++-第8周项目——用if语句实现分支结构程序设计
- 获取cpu、内存、磁盘的使用率
- Unity3D教程:四步解决高级脚本编译
- 标准C获取当前系统时间
- 学程序要学会整理总结
- F28335_ECAP使用
- 两种设置控件背景颜色的方法
- Java栈与堆
- 汇编中try catch的实现
- 数据结构-图-Java实现:有向图 图存储(邻接矩阵),最小生成树,广度深度遍历,图的连通性,最短路径
- Golomb 编码
- CSS之Position详解
- TQ2440 LED驱动程序
- 关于无法保存Visual Studio自定义布局的问题