DSP捕获输入简单笔记
之前使用stm32的大概原理是:
输入引脚输入一个脉冲,捕获1开始极性捕获,捕获的是从启动捕获功能开始计数,捕获的是当前的计数值;
例如一个脉冲,捕获1捕获上升沿,捕获2捕获下降沿;而两个捕获计数值的差就是高电平的计数值;
计数值,又涉及到时钟,分频等;一个捕获时钟*计数值等于电平时间;
如下是预分频结构图/预定标
这个预定标是什么东西,2分频就是两个极性化成一个极性。第一个极性有效;4分频也是如此

捕获大概框图
GPIO复用,ECAP模块,PIE组中断

可以选择是捕获或者APWM模式
现在是CAP模式

详细的捕获框图
cap引脚进来后,是 分频/预定标,极性选择,捕获计数器和相位寄存器控制(而且有时钟同步),捕获单次/连续控制,PIE组中断;

连续/单次控制
捕获事件的时候,受到单次/连续事件 停止值控制;
这个中的计数器,是可以选择连续用捕获1到4的捕获,4次捕获。并且可以设置是否重置计数值;

中断
ECFLG 标记 (后面是这个图没有的) 和PIE中断标记 和 ECAp一个通用的中断INT 只要有事件这个中断标记必有,在寄存器说明有;
所以中断里面需要清除三个标志;
本次是使用单次模式下的 连续1234捕获。在第四次捕获完成之后,进入中断;

程序
/** cap.c** Created on: 2023年12月16日* Author: My PC*/
#include"cap.h"void cap_init()
{EALLOW;SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;//gpio时钟SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK = 1;//cap5时钟EDIS;EALLOW;GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 1;//复用1GpioCtrlRegs.GPBDIR.bit.GPIO48 = 0;//输入GpioCtrlRegs.GPBPUD.bit.GPIO48 = 0;//下拉GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 0;//与系统时钟同步EDIS;EALLOW;ECap5Regs.ECEINT.all = 0;//禁止全部中断ECap5Regs.ECCLR.all = 0xffff;//清除所有中断标记ECap5Regs.ECCTL1.bit.CAPLDEN = 0;//禁止向cap捕获装载值ECap5Regs.ECCTL2.bit.TSCTRSTOP = 0;//禁止计数ECap5Regs.ECCTL1.bit.CAP1POL = 1;//下降沿触发ECap5Regs.ECCTL1.bit.CAP2POL = 0;//上升边沿触发ECap5Regs.ECCTL1.bit.CAP3POL = 1;ECap5Regs.ECCTL1.bit.CAP4POL = 0;ECap5Regs.ECCTL1.bit.CTRRST1 = 0;//捕获1后,计数值不复位,首次启动的时候,避免捕获1过大,选择此次复位,赋值为1合适点,反正第一次捕获值没什么意义;ECap5Regs.ECCTL1.bit.CTRRST2 = 0;ECap5Regs.ECCTL1.bit.CTRRST3 = 0;ECap5Regs.ECCTL1.bit.CTRRST4 = 1;//捕获4后,计数值复位ECap5Regs.ECCTL2.bit.CAP_APWM = 0;//运行再cap模式下ECap5Regs.ECCTL2.bit.CONT_ONESHT = 1;//捕获处于单次模式ECap5Regs.ECCTL2.bit.STOP_WRAP = 3;//单次模式下。捕获4完成之后停止 ECap5Regs.ECCTL2.bit.SYNCI_EN = 1;//使能内部同步 使得相位装载到计数器ECap5Regs.ECCTL2.bit.SYNCO_SEL = 0;// 选择内部同步信号为外部同步信号ECap5Regs.ECCTL2.bit.REARM = 1;//单次序列强制 mod计数器复位为0 计数器使能 使能捕获寄存器EDIS;EALLOW;ECap5Regs.ECCTL2.bit.TSCTRSTOP = 1;//计数ECap5Regs.ECCTL1.bit.CAPLDEN = 1;//使能向cap捕获装载值ECap5Regs.ECEINT.bit.CEVT4 = 1;//使能捕获4中断EDIS;EALLOW;PieCtrlRegs.PIEIER4.bit.INTx5 = 1;//PIE4的第5个中断使能;PieVectTable.ECAP5_INT = &ECAP5_INT_REQ;//中断的函数 存中断函数地址的地址EDIS;IER |= M_INT4;//CAP5中断在 PIE的第四组EINT;ERTM;
}Uint32 CAP_num_1=0, CAP_num_2=0, CAP_num_3=0, CAP_num_4=0;interrupt void ECAP5_INT_REQ()
{CAP_num_1 = ECap5Regs.CAP1;CAP_num_2 = ECap5Regs.CAP2;CAP_num_3 = ECap5Regs.CAP3;CAP_num_4 = ECap5Regs.CAP4;ECap5Regs.ECCLR.bit.CEVT4 = 1;ECap5Regs.ECCLR.bit.INT = 1;//因为每个中断,这个INT标记都会设置1.所以要同时清除ECap5Regs.ECCTL2.bit.REARM = 1;//下一次还是强制为单次序列PieCtrlRegs.PIEACK.bit.ACK4=1;//PIE组4 的应答清除
}
48脚接一个PWM,可以仿真看到4个捕获值
主程序
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#include "led1.h"
#include "key.h"
#include "epwm.h"
#include "exti.h"
#include "time0.h"
#include "adc.h"
#include "cap.h"
int main()
{float temp = 0;Uint16 adc_num,i=0;InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();led_init();time0_init(2000);epwm_init(1000);EPWM6_set_compara(1000, 500);//150M,不分频的PWMcap_init();while (1){DELAY_US(200000);EPWM6_set_compara(1000, i+=100);if(i>1000){i=0;}}}
相关文章:
DSP捕获输入简单笔记
之前使用stm32的大概原理是: 输入引脚输入一个脉冲,捕获1开始极性捕获,捕获的是从启动捕获功能开始计数,捕获的是当前的计数值; 例如一个脉冲,捕获1捕获上升沿,捕获2捕获下降沿;而两…...
【Java基础】HashMap 原理
文章目录 1、HashMap 设置值的原理2、HashMap 获取值原理3、HashMap Hash优化4、HashMap 寻址优化5、HashMap 是如何解决Hash冲突的?5.1 get数据的时候,如果定位到指定位置的元素是一个链表,怎么办呢?5.2 红黑树 6、数组扩容6.1 数…...
vue3的大致使用
<template><div class"login_wrap"><div class"form_wrap"> <!-- 账号输入--> <el-form ref"formRef" :model"user" class"demo-dynamic" > <!--prop要跟属性名称对应-->…...
什么是计算机网络?计算机网络基础知识
1.网络的组成部分:由主机,路由器,交换机等组成 2.网络结构:网络的网络 3.信息交换方式:电路交换和分组交换 4.网络分层:分清职责,物理层,链路层,网络层,运…...
【机器学习 | 假设检验系列】假设检验系列—卡方检验(详细案例,数学公式原理推导),最常被忽视得假设检验确定不来看看?
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...
RealBasicVSR高清处理视频
autodl做了镜像:高清RealBasicVSR 首先在剪映将视频剪好导出,最多是720像素的,不然后面超分的时候会爆显存。剪映视频也最好是双数帧数结尾的,不然超分的时候单数图片会报错->RuntimeError: non-empty 3D or 4D input tensor …...
晚期食管癌肿瘤治疗线程分类
文章目录 1、肿瘤治疗的线数1.1 基础概念1.2 线程定义1.3 如何计算治疗线数 2 食管癌治疗指南2.1 食管癌诊疗指南2.1 CSCO 本文前半部分主要来源于参考文件1,其余部分来源于官方指南。无原创内容,全部为摘要。 1、肿瘤治疗的线数 1.1 基础概念 抗肿瘤药…...
高效营销系统集成:百度营销的API无代码解决方案,提升电商与广告效率
百度营销API连接:构建无代码开发的高效集成体系 在数字营销的高速发展时代,企业追求的是快速响应市场的能力以及提高用户运营的效率。百度营销API连接正是为此而生,它通过无代码开发的方式,实现了电商平台、营销系统和CRM的一站式…...
网络基础(十一):VRRP原理与配置
目录 前言: 1、VRRP的基本概述 2、VRRP的基本原理 2.1VRRP的基本结构 2.2设备类型 2.3状态机 2.4VRRP路由器的抢占功能 2.5VRRP路由器的优先级 2.6VRRP工作原理 2.7主备路由器的工作内容 3、VRRP的基本配置 3.1配置主路由器和备用路由器 3.2配置PC1与P…...
设计模式——状态模式
引言 状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 问题 状态模式与有限状态机 的概念紧密相关。 其主要思想是程序在任意时刻仅可处于几种有限的状态中。 在任何一个特定状态中…...
2020-XNUCA babyv8
做的第一道存在指针压缩机制的V8题,通过小越界写修改length构造大越界读写,然后利用arraybuffer的backing store构造任意地址写,利用wasm rwx段地址的特点以及堆空间的分布,搜索到rwx段的具体地址,然后利用任意地址写将…...
货物数据处理pandas版
1求和 from openpyxl import load_workbook import pandas as pddef print_hi(name):# Use a breakpoint in the code line below to debug your script.print(fHi, {name}) # Press CtrlF8 to toggle the breakpoint.# Press the green button in the gutter to run the scr…...
MC-30A (32.768 kHz用于汽车应用的晶体单元)
MC-30A 32.768 kHz用于汽车应用的晶体,车规晶振中的热销型号之一。该款石英晶体谐振器,可以在-40 to 85 C的温度内稳定工作,能满足起动振动的要求。同时满足AEC-Q200无源元件质量标准认证,满足汽车仪表系统的所有要求。 频率范围…...
TrustZone之其他设备及可信基础系统架构
一、其他设备 最后,我们将查看系统中的其他设备,如下图所示: 我们的示例TrustZone启用的系统包括一些尚未涵盖的设备,但我们需要这些设备来构建一个实际的系统。 • 一次性可编程存储器(OTP)或保险丝 这些是一旦写入就无法更改的存储器。与每个芯片上都包含相同…...
自由编程学习资源:free-programming-books
最近,我发现了一个在GitHub上备受欢迎的项目,它为程序员和编程爱好者提供了丰富、免费且高质量的学习资料,这就是"free-programming-books"。目前,这个项目在GitHub上已经有305k的star,显示出它在开发者社区…...
饥荒Mod 开发(十三):木牌传送
饥荒Mod 开发(十二):一键制作 饥荒Mod 开发(十四):制作屏幕弹窗 一键传送源码 饥荒的地图很大,跑地图太耗费时间和饥饿值,如果大部分时间都在跑图真的是很无聊,所以需要有一个能够传送的功能,不仅可以快速…...
Qt/C++音视频开发60-坐标拾取/按下鼠标获取矩形区域/转换到视频源真实坐标
一、前言 通过在通道画面上拾取鼠标按下的坐标,然后鼠标移动,直到松开,根据松开的坐标和按下的坐标,绘制一个矩形区域,作为热点或者需要电子放大的区域,拿到这个坐标区域,用途非常多࿰…...
Java实现订单超时未支付自动取消的8种方法总结
Java实现订单超时未支付自动取消的8种方法总结 定时轮询 数据库定时轮询方式,实现思路比较简单。启动一个定时任务,每隔一定时间扫描订单表,查询到超时订单就取消。优点:实现简单。缺点:轮询时间间隔不好确定&#x…...
android动态权限申请并展示权限使用说明
# ExplainPermissions 动态权限申请并展示权限使用说明 随着工信部对APP的一系列整治,现在用户对于APP在使用时动态申请的权限是比较敏感的,为了更好的用户体验,我们可以在权限动态申请的时候一并向用户展示所需要申请权限的使用说明。这样用…...
论文阅读《DPS-Net: Deep Polarimetric Stereo Depth Estimation》
论文地址:https://openaccess.thecvf.com/content/ICCV2023/html/Tian_DPS-Net_Deep_Polarimetric_Stereo_Depth_Estimation_ICCV_2023_paper.html 概述 立体匹配模型难以处理无纹理场景的匹配,现有的方法通常假设物体表面是光滑的,或者光照是…...
SDMatte高可用集群部署:基于Kubernetes的弹性伸缩方案
SDMatte高可用集群部署:基于Kubernetes的弹性伸缩方案 1. 为什么需要高可用部署方案 电商大促期间,某美妆品牌突然发现他们的AI抠图服务崩溃了——每秒上千张的商品图等待处理,但单机部署的服务早已不堪重负。这种场景在企业级AI应用部署中…...
Qwen2-VL-2B-Instruct性能优化:Web服务并发请求处理与队列管理
Qwen2-VL-2B-Instruct性能优化:Web服务并发请求处理与队列管理 当你的AI图片分析服务突然火了,用户蜂拥而至,同时上传几十张图片要求分析,会发生什么?最直接的结果可能就是服务器卡死,用户看到“服务超时”…...
南北阁 4.1-3B 开源镜像实战:Streamlit轻量化UI+CoT折叠展示一文详解
南北阁 4.1-3B 开源镜像实战:Streamlit轻量化UICoT折叠展示一文详解 想快速体验一个能在本地流畅运行、还能“看见”模型思考过程的智能对话工具吗?今天要介绍的,就是基于南北阁(Nanbeige)4.1-3B模型打造的轻量化流式…...
国密SM9在微服务网关中TPS骤降42%的真实案例,从ASN.1编码冗余到ZKP预计算的7步性能修复清单
第一章:SM9国密算法在微服务网关中的性能瓶颈全景图 SM9作为我国自主设计的基于身份的密码算法(IBC),其双线性对运算、私钥生成与密文解封等核心操作天然引入显著计算开销。当部署于高并发、低延迟要求的微服务网关(如…...
Pixel Mind Decoder 在游戏剧情分支中的应用:根据玩家情绪动态叙事
Pixel Mind Decoder 在游戏剧情分支中的应用:根据玩家情绪动态叙事 1. 引言:当游戏能读懂你的情绪 想象一下,当你正在玩一款角色扮演游戏,每次对话选择不仅影响剧情走向,游戏还能感知你的情绪变化——你犹豫时的焦虑…...
LumiPixel Canvas Quest生成人像的细节优化:高清修复与面部修复技术详解
LumiPixel Canvas Quest生成人像的细节优化:高清修复与面部修复技术详解 1. 为什么需要关注人像生成质量 用AI生成人像时,最让人头疼的就是面部细节问题。你可能遇到过这样的情况:生成的图片整体效果不错,但放大一看,…...
Qwen2.5-72B-GPTQ-Int4保姆级教程:log排查技巧+Chainlit响应延迟优化
Qwen2.5-72B-GPTQ-Int4保姆级教程:log排查技巧Chainlit响应延迟优化 1. 模型简介与部署准备 Qwen2.5-72B-Instruct-GPTQ-Int4是通义千问大模型系列的最新版本,在知识量、编程能力和数学能力方面有显著提升。这个72.7B参数的模型经过GPTQ 4-bit量化&…...
AnythingtoRealCharacters2511应用案例:为小说角色生成真人参考形象
AnythingtoRealCharacters2511应用案例:为小说角色生成真人参考形象 1. 引言:从动漫到真人的魔法转换 想象一下,当你阅读一本精彩的小说时,脑海中浮现的角色形象突然变得栩栩如生。这正是AnythingtoRealCharacters2511能够实现的…...
League-Toolkit:提升英雄联盟游戏体验的开源工具集
League-Toolkit:提升英雄联盟游戏体验的开源工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是基…...
2026权威评测:盘点毕业论文AIGC免费降重神器
【CSDN 资深算法架构师 / NLP技术专栏 导读】 各位还在发际线边缘挣扎的应届生和硕博党们,到了2026年,如果你的电脑里还装着那种老掉牙的“同义词替换”降重软件,我劝你赶紧停手! 最近CSDN社群里哀嚎一片:“知网查重过…...
