输入捕获有4级捕获,最多可以得到4个捕获时间,捕获记性可以任意配置

可用于测速,测脉冲周期,频率,占空比等

cap.c

#include "cap.h"

void InitCap(void)
{
   InitECap5Gpio();
   InitECap6Gpio();
   SetCap5();
   SetCap6();
}

void SetCap5(void)
{
  ECap5Regs.ECCTL1.bit.CAP1POL = EC_RISING;  
  ECap5Regs.ECCTL1.bit.CAP2POL = EC_FALLING; //EC_RISING;
  ECap5Regs.ECCTL1.bit.CAP3POL = EC_RISING;
  ECap5Regs.ECCTL1.bit.CAP4POL = EC_FALLING;
  ECap5Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;
  ECap5Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;
  ECap5Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;
  ECap5Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;
  ECap5Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;
  ECap5Regs.ECCTL1.bit.PRESCALE = EC_DIV1;
  ECap5Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;
  ECap5Regs.ECCTL2.bit.CONT_ONESHT = EC_CONTINUOUS;  //连续捕获
  ECap5Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;
  ECap5Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;
  ECap5Regs.ECEINT.all=0x0000;//stop all interrupt
  ECap5Regs.ECCLR.all=0xFFFF;//clare all flag
  ECap5Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;// 启动
  ECap5Regs.ECEINT.bit.CEVT4=1;// Enable cevt4 interrupt  //第4个捕获事件发生时,产生中断
}

void SetCap6(void)
{
  ECap6Regs.ECCTL1.bit.CAP1POL = EC_FALLING;
  ECap6Regs.ECCTL1.bit.CAP2POL = EC_FALLING;
  ECap6Regs.ECCTL1.bit.CAP3POL = EC_FALLING;
  ECap6Regs.ECCTL1.bit.CAP4POL = EC_FALLING;
  ECap6Regs.ECCTL1.bit.CTRRST1 = EC_ABS_MODE;
  ECap6Regs.ECCTL1.bit.CTRRST2 = EC_ABS_MODE;
  ECap6Regs.ECCTL1.bit.CTRRST3 = EC_ABS_MODE;
  ECap6Regs.ECCTL1.bit.CTRRST4 = EC_ABS_MODE;
  ECap6Regs.ECCTL1.bit.CAPLDEN = EC_ENABLE;
  ECap6Regs.ECCTL1.bit.PRESCALE = EC_DIV1;
  ECap6Regs.ECCTL2.bit.CAP_APWM = EC_CAP_MODE;
  ECap6Regs.ECCTL2.bit.CONT_ONESHT = EC_CONTINUOUS;
  ECap6Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCO_DIS;
  ECap6Regs.ECCTL2.bit.SYNCI_EN = EC_DISABLE;
  ECap6Regs.ECEINT.all=0x0000;//stop all interrupt
  ECap6Regs.ECCLR.all=0xFFFF;//clare all flag
  ECap6Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;// 启动
  ECap6Regs.ECEINT.bit.CEVT4=1;// Enable cevt4 interrupt
}

Uint32 t1,t2,t3,t4,T1,T2;
interrupt void ISRCap5(void)
{
   // Acknowledge this interrupt to receive more interrupts from group 1
    PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;
    ECap5Regs.ECCLR.all=0xFFFF;//clare all flag
t1= ECap5Regs.CAP1;
t2= ECap5Regs.CAP2;
t3= ECap5Regs.CAP3;
    t4= ECap5Regs.CAP4;
    T1=t2-t1;T2=t3-t1;
}

Uint32 t5,t6,t7,t8,T3,T4;
interrupt void ISRCap6(void)
{
   // Acknowledge this interrupt to receive more interrupts from group 1
    PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;
    ECap6Regs.ECCLR.all=0xFFFF;//clare all flag
t5= ECap6Regs.CAP1;
t6= ECap6Regs.CAP2;
t7= ECap6Regs.CAP3;
    t8= ECap6Regs.CAP4;
    T3=t6-t5;T4=t8-t7;

}

cap.h

#ifndef CAP_H_
#define CAP_H_

#include "main.h"

extern Uint32 t1,t2,t3,t4,T1,T2;
 extern Uint32 t5,t6,t7,t8,T3,T4;

void InitCap(void);
void SetCap5(void);
void SetCap6(void);

interrupt void ISRCap5(void);
interrupt void ISRCap6(void);

#endif /* CAP_H_ */

main函数中要调用的

InitCap(); //输入捕获初始化

PieVectTable. ECAP5_INT = &ISRCap5;  //输入捕获5

IER |= M_INT4;    //输入捕获
PieVectTable. ECAP6_INT = &ISRCap6;  //输入捕获6

PieCtrlRegs.PIEIER4.bit.INTx5 = 1;   //输入捕获5中断
  PieCtrlRegs.PIEIER4.bit.INTx6 = 1;   //输入捕获6中断

DSP28335 ecap使用相关推荐

  1. DSP28335学习之旅1-基础知识

    目录 1.1  DSP 是什么 1.2  DSP 与单片机的区别 1.3  DSP性能相关 1.4  DSP命名规则 1.5  DSP28335的常用资源 1.6  DSP28335的常用参考手册 1 ...

  2. DSP28335中断系统(一)

    1.什么是中断? 举个例子,你在吃饭的时候,突然觉得口渴,此时你就会去喝水,等喝完水你再继续吃饭.在这个例子中,吃饭为主程序运行,大脑觉着口渴就是发中断申请,喝水就是中断子程序.在DSP的中断概念也是 ...

  3. dsp呼吸灯C语言编程,DSP28335 呼吸灯程序

    DSP28335呼吸灯程序 //########################################################################### // // FI ...

  4. dsp28335电机控制板资料 永磁同步电机有传感器三闭环foc控制

    dsp28335电机控制板资料 1.永磁同步电机有传感器三闭环foc控制 2.永磁同步电机无传感器双闭环foc控制 3.无刷直流电机有传感器方波控制 4.异步电机V/F变频调速控制 5.电机状态量曲线 ...

  5. 全球及中国电解电容器(E-Cap)供给能力与竞争状况分析报告2022~2027年

    全球及中国电解电容器(E-Cap)供给能力与竞争状况分析报告2022-2027年  ************************************** [报告编号]: BG547526 [出 ...

  6. DSP28335入门教程:ADC的使用

    老笨来讲讲dsp28335的ADC的最基本用法. 先来看看硬件电路连接图: 程序 #include "DSP28x_Project.h"#define ADC_CKPS 0x1 / ...

  7. DSP28335笔记 ———— 中断系统 之 外部中断

    DSP28335笔记 ---- 中断系统 之 外部中断 我用的开发板是"硬汉DSP28335开发板",文中对于硬件的描述可以说是没有,而且我还没有附上电路图希望在看的朋友不要喷我. ...

  8. DSP28335入门教程:寄存器手册的下载

    2020.04.29更新 TI官方最近更新的TMS320F28335用户指导手册,已经将全部功能模块统一到单个文档中:TMS320x2833x, TMS320x2823x Technical Refe ...

  9. DSP28335的硬件SPI使用(无FIFO)总结

    目录 前言 问题的提出 问题的解决 说在最后 前言 这两天折腾了一个旋变器解算模块的使用,类似于这种器件一般都是使用通信的方式写入芯片对应的寄存器的数据从而初始化芯片或得到可编程的结果:反之,我们也需 ...

  10. DSP28335学习笔记-产生PWM波 ——从应用角度出发

    文章目录 前言 一.示波器检测PWM波 1.对应引脚说明 2.PWM波形 二.寄存器配置及代码实现 1.时基模块寄存器配置 2.计数比较模块和动作模块 3.死区产生模块 总结 前言 关于DSP2833 ...

最新文章

  1. autoware源码安装与运行ROSBAG示例(二)
  2. 人工智能实践:TensorFlow笔记学习(三)——TensorFlow框架
  3. KEIL MDK LIB库文件的制作
  4. 设计模式(十一)桥梁模式(结构型)
  5. java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案
  6. JasperReports JSF插件用例系列
  7. FPGA跨时钟域处理方法FIFO
  8. bzoj 1858: [Scoi2010]序列操作
  9. 啊哈C语言 第四章 【代码】【习题答案】
  10. python list 添加噪声_在python中为信号添加噪声
  11. 笔记本gtx1650最好用驱动_各型号笔记本显卡定位
  12. GLFWError #65542 Happen, WGL: The driver does not appear to support OpenGL的问题处理经历
  13. 英语口语练习四十三之7种方式说“温柔”
  14. 恢复突然消失的Chrome浏览器书签
  15. 量化交易系统设计细节
  16. ubuntu自动同步时间
  17. (附源码)springboot基于微信小程序的高校计算机类课程思政库的设计与实现 毕业设计 271611
  18. Android 蒲公英APP更新
  19. 第十三章 使用动态SQL(四)
  20. Unity3D制作3D虚拟漫游场景(二)

热门文章

  1. 掌握Haproxy原理并搭建
  2. 20210706 为什么edge无法修改主页?或者启动后两个页面?
  3. 小米5USB 计算机连接,小米手机如何连接win7电脑传文件|小米手机连接win7传文件的方法...
  4. 第五章:量化研究专题(第四篇:统计套利:利用相关系数进行配对交易 )
  5. 微信小程序吸顶容器sticky
  6. 数据库一对一、一对多、多对多关系
  7. MySQL分库分表后聚合查询_MySQL订单分库分表多维度查询
  8. 突破网页页面视频播放速度限制
  9. 伪标签+html,伪标签(Pseudo-Labelling)介绍:一种半监督机器学习技术
  10. c语言偶数求和while,C语言中编程计算1至100以内的奇数和偶数并分别求和,求代码...