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;}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/219850.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何看待「前端已死论」?

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

C#浅拷贝和深拷贝数据

目录 一、浅拷贝 二、深拷贝 一、浅拷贝 就是把原来的数据,复制一份,但是2份数据是共享地址的,修改第一份数据或者修改第二份数据,都会一起改变,这可能不是我们程序中需要的场景。 下面我们演示一下,首…

【网络安全】网络防护之旅 - 点燃网络安全战场的数字签名烟火

​ 🌈个人主页:Sarapines Programmer🔥 系列专栏:《网络安全之道 | 数字征程》⏰墨香寄清辞:千里传信如电光,密码奥妙似仙方。 挑战黑暗剑拔弩张,网络战场誓守长。 ​ 目录 😈1. 初识…

信息收集 - 域名

1、Whois查询: Whois 是一个用来查询域名是否已经被注册以及相关详细信息的数据库(如:域名所有人、域名注册商、域名注册日期和过期日期等)。通过访问 Whois 服务器,你可以查询域名的归属者联系方式和注册时间。 你可以在 域名Whois查询 - 站长之家 上进行在线查询。 2、…

天猫数据平台-淘宝天猫数据-天猫销售数据分析:11月天猫平台滑雪运动装备行业销量翻倍!

随着天气变冷、冬季来临,迎来了疫情后的首个滑雪季,加之自冬奥会结束以来,大众参与冰雪运动的热度持续攀升,因此,冰雪运动的需求正集中释放。 根据相关数据显示,11月以来,全国滑雪场门票预订量较…

【LeetCode刷题笔记】155.最小栈

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…

2.初始化Server、Common工程

1.初始化项目结构 1.1 工程依赖关系 1.2 根pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation…

HTTP 302错误:临时重定向

在Web开发中&#xff0c;HTTP状态码是用于表示Web服务器响应的各种状态。其中&#xff0c;HTTP 302错误表示临时重定向&#xff0c;这意味着请求的资源已被临时移动到其他位置&#xff0c;并且服务器已经提供了新的URL&#xff0c;以便客户端可以重新发送请求。 了解HTTP 302错…

RHEL8_Linux_Ansible常用模块的使用

本章主要介绍Ansible中最常见模块的使用 shell模块文件管理模块软件包管理模块服务管理模块磁盘管理模块用户管理模块防火墙管理模块 ansible的基本用法如下。 ansible 机器名 -m 模块x -a "模块的参数" 对被管理机器执行不同的操作&#xff0c;只需要调用不同的模块…

谷歌宣布向云计算客户开放 Gemini Pro,开发者可用其构建应用

12 月 14 日消息&#xff0c;美国时间周三&#xff0c;谷歌宣布了一系列升级的人工智能&#xff08;AI&#xff09;功能&#xff0c;旨在为其云计算客户提供更好的服务。这家科技巨头正试图赶上竞争对手&#xff0c;比如微软和 OpenAI&#xff0c;它们都在积极利用人工智能的热…

TrustGeo代码理解(一)main.py

代码链接:https://github.com/ICDM-UESTC/TrustGeo 一、导入各种模块和数据库 # -*- coding: utf-8 -*- import torch.nnfrom lib.utils import * import argparse, os import numpy as np import random from lib.model import * import copy from thop import profile imp…

如何发布自定义 npm 组件包

准备工作 1. 注册 npm 账号 还没有 npm 账号&#xff1f;去官网注册&#xff1a; https://www.npmjs.com 需要记住用户名、密码、邮箱&#xff0c;后面需要用到。 2. 查看本地 npm 镜像&#xff0c;如果不是默认的&#xff0c;需要改回来 npm config get registry重置镜像路…

【DataSophon】大数据服务组件之Flink升级

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

什么是POM设计模式?

为什么要用POM设计模式 前期&#xff0c;我们学会了使用PythonSelenium编写Web UI自动化测试线性脚本 线性脚本&#xff08;以快递100网站登录举栗&#xff09;&#xff1a; import timefrom selenium import webdriver from selenium.webdriver.common.by import Bydriver …

Leetcode 90 子集 II

题意理解&#xff1a; 求一个集合的子集&#xff1a;该集合有重复元素。 集合[1,2,2] []、[1]、[2]、[2]、[12]、[12]、[22]、[122] 子集&#xff1a;[]、[1]、[2]、[12]、[22]、[122]——由于元素有重复需要对子集进行去重操作。 所以此题的难点在于&#xff1a;子集去重 解题…

c++知识总结

一 细碎知识 1.9 I 1.9.1 inline 参考 C语言中头文件中的 static inline 函数以及 __attribute__((always_inline)) 强制内联展开-CSDN博客https://blog.csdn.net/m0_37616597/article/details/104138980 慎用 inline 内联能提高函数的执行效率,为什么不把所有的函数都定…

PHPStorm一站式配置

phpstorm安装好之后&#xff0c;先别急着编码。工欲善其事&#xff0c;必先利其器&#xff0c;配置好下面这些之后让编码事半功倍。 主题 Appearance & Behavior -> Appearance -> Theme 选中 [Light with Light Header] 亮色较为护眼 关闭更新 Appearance & …

迅为RK3568开发板使用OpenCV处理图像-ROI区域-位置提取ROI

在图像处理过程中&#xff0c;我们可能会对图像的某一个特定区域感兴趣&#xff0c;该区域被称为感兴趣区域&#xff08;Region of Interest, ROI&#xff09;。在设定感兴趣区域 ROI 后&#xff0c;就可以对该区域进行整体操作。 位置提取 ROI 本小节代码在配套资料“iTOP-3…

怎么做可下载的音频二维码?音频扫码下载的方法

相信音频二维码大家都不陌生&#xff0c;但是很多的二维码扫码后只能够听音乐&#xff0c;无法下载音频到手机&#xff0c;那么这个问题有什么比较简单的处理方法吗&#xff1f;想要制作支持音频下载功能的二维码图片&#xff0c;可以使用在线二维码生成器来完成制作&#xff0…

AI摄影绘画与PS优化:重塑数字艺术的未来

文章目录 《AI摄影绘画与PS优化从入门到精通》内容简介作者简介楚天 目录前言/序言 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的各个领域&#xff0c;包括艺术创作。AI摄影绘画和Photoshop&#xff08;PS&#xff09;优化是这个领…