F28335共有6组eCAP模块,每个eCAP不但具有捕获功能,而且还可用作PWM输出功能。F28335捕获模块的主要特征如下:
1. 150MHz系统时钟的情况下,32位时基的时间分辨率为6.67ns;
2. 4组32位的时间标志寄存器;
3. 4级捕获事件序列,可以灵活配置捕获事件边沿极性;
4. 四级触发事件均可以产生中断;
5. 软件配置一次捕获可以最多得到4个捕获时间;
6. 可连续循环4级捕获;
7. 绝对时间捕获;
8. 不同模式的时间捕获;
9. 所有捕获都发生在一个输入引脚上;
10. 如果eCAP模块不作捕获使用,可以配置成一个单通道输出的PWM模式。
eCAP模块中一个捕获通道完成一次捕获任务,需要以下关键资源:
1、专用捕获输入引脚;
2、32位时基(计数器);
3、4*32位时间标签捕获寄存器;
4、4级序列器,与外部eCAP引脚的上升/下降沿同步;
5、4个事件可独立配置边沿极性;
6、输入捕获信号预定标(2-62);
7、一个2位的比较寄存器,一次触发后可以捕获4个时间标签事件;
8、采用4级深度的循环缓冲器以进行连续捕获;
9、4个捕获事件中任意一个都可以产生中断。

DSP2833x_SysCtrl.h

// Peripheral clock control register 1 bit definitions:
struct PCLKCR1_BITS  {    // bits  descriptionUint16 EPWM1ENCLK:1;   // 0     Enable SYSCLKOUT to EPWM1Uint16 EPWM2ENCLK:1;   // 1     Enable SYSCLKOUT to EPWM2Uint16 EPWM3ENCLK:1;   // 2     Enable SYSCLKOUT to EPWM3Uint16 EPWM4ENCLK:1;   // 3     Enable SYSCLKOUT to EPWM4Uint16 EPWM5ENCLK:1;   // 4     Enable SYSCLKOUT to EPWM5Uint16 EPWM6ENCLK:1;   // 5     Enable SYSCLKOUT to EPWM6Uint16 rsvd1:2;        // 7:6   reservedUint16 ECAP1ENCLK:1;   // 8     Enable SYSCLKOUT to ECAP1 系统时钟150MHzUint16 ECAP2ENCLK:1;   // 9     Enable SYSCLKOUT to ECAP2Uint16 ECAP3ENCLK:1;   // 10    Enable SYSCLKOUT to ECAP3Uint16 ECAP4ENCLK:1;   // 11    Enable SYSCLKOUT to ECAP4Uint16 ECAP5ENCLK:1;   // 12    Enable SYSCLKOUT to ECAP5Uint16 ECAP6ENCLK:1;   // 13    Enable SYSCLKOUT to ECAP6Uint16 EQEP1ENCLK:1;   // 14    Enable SYSCLKOUT to EQEP1Uint16 EQEP2ENCLK:1;   // 15    Enable SYSCLKOUT to EQEP2
};

  由上面代码可知eCAP模块的时钟为系统时钟,时基是6.67ns

#define EC_RISING     0           //上升沿电平值
#define EC_FALLING    1            //下降沿电平值
#define EC_ABS_MODE   0            //在CAPx事件中不重置计数器
#define EC_ENABLE     1            //使能在捕获事件中加载CAP1-4寄存器的时间
#define EC_DIV1       00000      //输入信号分频选择 不分频
#define EC_CAP_MODE   0            //ECAP工作于捕获工作模式
#define EC_CONTINUOUS 0            //0为连续模式  1为单次模式
#define EC_SYNCO_DIS  2             //同步输出选择:  10、11屏蔽同步信号输出
#define EC_DISABLE    0            //屏蔽同步输入操作
#define EC_RUN        1            //1计数器启动    0计数器停止

  以上代码为宏定义

void InitECAP()
{SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1;//使能eCAP1SysCtrlRegs.PCLKCR1.bit.ECAP2ENCLK = 1;//使能eCAP2
//    SysCtrlRegs.PCLKCR1.bit.ECAP3ENCLK = 1;//使能eCAP3
//    SysCtrlRegs.PCLKCR1.bit.ECAP4ENCLK = 1;//使能eCAP4
//    SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK = 1;//使能eCAP5
//    SysCtrlRegs.PCLKCR1.bit.ECAP6ENCLK = 1;//使能eCAP6IER |= M_INT4;//
    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
    SetCap1();SetCap2();}void SetCap1()
{ECap1Regs.ECCTL1.bit.CAP1POL = EC_RISING;             //一级事件捕捉上升沿ECap1Regs.ECCTL1.bit.CAP2POL = EC_RISING;             //二级事件捕捉上升沿ECap1Regs.ECCTL1.bit.CAP3POL = EC_RISING;             //三级事件捕捉上升沿ECap1Regs.ECCTL1.bit.CAP4POL = EC_RISING;             //四级事件捕捉上升沿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;         //捕捉模式ECAPECap1Regs.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;                         //关闭所有 CAP 中断ECap1Regs.ECCLR.all=0xFFFF;                         //清除所有中断标志位ECap1Regs.ECCTL2.bit.TSCTRSTOP = EC_RUN;             //启动 CAP 计数器ECap1Regs.ECEINT.bit.CEVT4=1;                         //使能四级事件中断,即当发生第四次捕捉时进入中断
}

  在四级事件后进中断

interrupt void ECAP1_INT_ISR(void)    // ECAP-1
{// Insert ISR Code here
     Uint32 t1,t2,t3,t4,T1,T2;t1 = ECap1Regs.CAP1;t2 = ECap1Regs.CAP2;t3 = ECap1Regs.CAP3;t4 = ECap1Regs.CAP4;T1 = t2-t1;T2 = t4-t3;// To receive more interrupts from this PIE group, acknowledge this interrupt PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;ECap1Regs.ECCLR.all=0xFFFF;                //clare all flag
}

转载于:https://www.cnblogs.com/ylhwx/p/7781086.html

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. 【雷达对抗】频率测量与频谱分析-频率搜索与测频技术

    一.搜索式超外差测频技术 搜索式超外差雷达测频系统的基本组成如下所示. 雷达信号通过接收天线.低噪放进入微波预选器,微波预选器从密集的信号环境中选出一定通带内的雷达信号送入混频器,与本振电压差拍变为中 ...

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

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

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

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

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

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

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

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

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

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

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

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

  10. 瞬时测频接收机matlab_瞬时测频接收机

    相关文献 0引言瞬时测频接收机作为雷达对抗侦察设备中最为常见的接收机,在出厂检测与维护校准时需要对其频率范围.灵敏度.动态范围.测频精度.脉冲宽度五大关键性能指标进行测试,而这五个性能指标的获得不仅是 ...

最新文章

  1. 【Java源码分析】LinkedList源码分析
  2. 如果没有StyleGAN2,真以为初代就是巅峰了:英伟达人脸生成器高能进化,弥补重大缺陷...
  3. codeforces Palindromic characteristics(hash或者dp)
  4. idea目录后面有中括号
  5. 简单文件的上传与保存
  6. 十进制转化为m进制(mlt;=16)
  7. 与你同行,才能无障碍
  8. 2021-2022元宇宙报告:化身与智造,元宇宙座标解析
  9. msg_p!=(void*) 0 --消息邮箱(点滴学习)
  10. (41)FPGA面试题FPGA详细设计流程
  11. java dom4j读写xml_Java:简单的读写XML文件之使用DOM4J读写
  12. jmeter报“msg“:“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“的解决方法
  13. 安卓蓝牙bluetooth开发全解
  14. html画圣诞树—动态效果展示【炫酷合集 免费获取源码】
  15. c++ explicit关键字解读
  16. python 爬虫基础——淘宝评论
  17. 在SAP自建 全国各大城市数据表。
  18. dll注册,但是对DllRegisterServer的调用失败,错误代码0x80070716
  19. 技术保障+配套体系,京东云掐准智能医疗的“脉象”
  20. 数据库——求候选键的方法

热门文章

  1. Titan XP值不值?教你如何挑选深度学习GPU
  2. 负载均衡(Load Balance)介绍
  3. Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
  4. CSDN,hen hao,hen qiang da
  5. 两个不同包里有相同的类
  6. 百思不得其姐关注模块的推荐关注中 右侧TableView刷新细节
  7. 强化学习——股票预测项目复现
  8. cxf配置http:conduit
  9. php strpos注意问题坑,php小白容易出现的 strpos 逻辑错误
  10. puts与fputs的区别