DSP28335 eCAP 测频
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 测频相关推荐
- DSP28335学习之旅1-基础知识
目录 1.1 DSP 是什么 1.2 DSP 与单片机的区别 1.3 DSP性能相关 1.4 DSP命名规则 1.5 DSP28335的常用资源 1.6 DSP28335的常用参考手册 1 ...
- DSP28335中断系统(一)
1.什么是中断? 举个例子,你在吃饭的时候,突然觉得口渴,此时你就会去喝水,等喝完水你再继续吃饭.在这个例子中,吃饭为主程序运行,大脑觉着口渴就是发中断申请,喝水就是中断子程序.在DSP的中断概念也是 ...
- 【雷达对抗】频率测量与频谱分析-频率搜索与测频技术
一.搜索式超外差测频技术 搜索式超外差雷达测频系统的基本组成如下所示. 雷达信号通过接收天线.低噪放进入微波预选器,微波预选器从密集的信号环境中选出一定通带内的雷达信号送入混频器,与本振电压差拍变为中 ...
- dsp呼吸灯C语言编程,DSP28335 呼吸灯程序
DSP28335呼吸灯程序 //########################################################################### // // FI ...
- dsp28335电机控制板资料 永磁同步电机有传感器三闭环foc控制
dsp28335电机控制板资料 1.永磁同步电机有传感器三闭环foc控制 2.永磁同步电机无传感器双闭环foc控制 3.无刷直流电机有传感器方波控制 4.异步电机V/F变频调速控制 5.电机状态量曲线 ...
- 全球及中国电解电容器(E-Cap)供给能力与竞争状况分析报告2022~2027年
全球及中国电解电容器(E-Cap)供给能力与竞争状况分析报告2022-2027年 ************************************** [报告编号]: BG547526 [出 ...
- DSP28335入门教程:ADC的使用
老笨来讲讲dsp28335的ADC的最基本用法. 先来看看硬件电路连接图: 程序 #include "DSP28x_Project.h"#define ADC_CKPS 0x1 / ...
- DSP28335笔记 ———— 中断系统 之 外部中断
DSP28335笔记 ---- 中断系统 之 外部中断 我用的开发板是"硬汉DSP28335开发板",文中对于硬件的描述可以说是没有,而且我还没有附上电路图希望在看的朋友不要喷我. ...
- DSP28335入门教程:寄存器手册的下载
2020.04.29更新 TI官方最近更新的TMS320F28335用户指导手册,已经将全部功能模块统一到单个文档中:TMS320x2833x, TMS320x2823x Technical Refe ...
- 瞬时测频接收机matlab_瞬时测频接收机
相关文献 0引言瞬时测频接收机作为雷达对抗侦察设备中最为常见的接收机,在出厂检测与维护校准时需要对其频率范围.灵敏度.动态范围.测频精度.脉冲宽度五大关键性能指标进行测试,而这五个性能指标的获得不仅是 ...
最新文章
- 【Java源码分析】LinkedList源码分析
- 如果没有StyleGAN2,真以为初代就是巅峰了:英伟达人脸生成器高能进化,弥补重大缺陷...
- codeforces Palindromic characteristics(hash或者dp)
- idea目录后面有中括号
- 简单文件的上传与保存
- 十进制转化为m进制(mlt;=16)
- 与你同行,才能无障碍
- 2021-2022元宇宙报告:化身与智造,元宇宙座标解析
- msg_p!=(void*) 0 --消息邮箱(点滴学习)
- (41)FPGA面试题FPGA详细设计流程
- java dom4j读写xml_Java:简单的读写XML文件之使用DOM4J读写
- jmeter报“msg“:“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“的解决方法
- 安卓蓝牙bluetooth开发全解
- html画圣诞树—动态效果展示【炫酷合集 免费获取源码】
- c++ explicit关键字解读
- python 爬虫基础——淘宝评论
- 在SAP自建 全国各大城市数据表。
- dll注册,但是对DllRegisterServer的调用失败,错误代码0x80070716
- 技术保障+配套体系,京东云掐准智能医疗的“脉象”
- 数据库——求候选键的方法