当前位置: 首页 > news >正文

【S5PV210_视频编解码项目】裸机开发2:实现PWM波形驱动蜂鸣器

开发内容介绍

基于芯片自带的PWM定时器模块,实现对PWM波形的控制,掌握pwm定时器的驱动程序开发。

开发理论架构

1)pwm波形的产生的条件:在指定的IO口输出一定频率和占空比的波形
2)pwm波形频率的影响因素:由输入时钟,分频系数以及计数器conter值共同决定,其中对应的关系由芯片数据手册决定(建议根据手册对照芯片厂商的demo程序)
在这里插入图片描述
3)pwm波形的占空比影响因素:计数器填充值与比较计数器填充值的比值决定
4)总结:为了生成pwm波形,需要将IO口设置为特定的pwm工作模式,其次通过预分频器和mux分频器以及计数器填充值的配置决定pwm的频率,再根据比较计数器的数值决定pwm的占空比

开发实际过程

在这里插入图片描述

开发所遇问题

问题1:

现象:按照梳理的流程配置后,发现pwm波形并未产生
分析:波形错误一方面是时钟没有给到位,获证IO口工作模式不正确,如果是时钟配置不正确,不可能没有波形,最多产生的评频率与期望不符,所以很大可能是IO口工作模式不正确导致的
行动:检查IO口配置,发现一开始配置错了,写的寄存器值是(0x0010),但手册其实是按照二进制给的0010,转化为十六进制也应该是0x2,改后。
结果:可以产生波形,蜂鸣器得到驱动。

感悟:

虽然是练习性质的项目,但是动手做的时候,还是容易出现寄存器配置不正确的问题,实际在工作中,这种初始化函数的具体代码已经由芯片厂商给的静态代码完成了,用户可以根据图形化的工具完成想要实现的功能,初始化函数的寄存器配置已经逐渐不是嵌入式驱动开发的核心技能,当然,问题的排查与调试能力依然重要。(不禁想问,AI技术时代已经来临,以后什么样的技术会被AI取代,而什么样的技术还能把握在人类手中呢?)

相关文章:

【S5PV210_视频编解码项目】裸机开发2:实现PWM波形驱动蜂鸣器

开发内容介绍 基于芯片自带的PWM定时器模块,实现对PWM波形的控制,掌握pwm定时器的驱动程序开发。 开发理论架构 1)pwm波形的产生的条件:在指定的IO口输出一定频率和占空比的波形 2)pwm波形频率的影响因素&#xff1…...

js进阶-深入对象-内置构造函数-包装类

一. 创建对象的三种方式 1.1 利用对象字面量创建对象 const p {name:"kebi" }1.2 利用 new Object 创建对象 // const obj new Object()// obj.uname maidi// console.log(obj)const obj new Object({ uname: maidi })1.3 利用构造函数创建对象 大写字母开头的…...

Linux作业

1.创建用户,用户名为user,user02密码均为123.com,创建完成后用tail查看用户是否存在。(截图)(10分) 2.在用户user主目录中用mkdir命令创建目录my.txt,在目录my.txt中创建文件a1.txt、1a1.txt、5…...

信息发布系统

特色功能 画布功能---可任意拖动各控件的播放位置及大小,可任意选择屏幕背景色或添加背景图 同步联屏---毫秒级同步功能 视频切换无黑屏 触摸查询系统 会议预定系统 终端显示-会议综合屏 终端显示-会议预定屏 终端显示-移动端 广告发布系统 硬件产品-智能终端 硬件…...

Dell Inspiron 戴尔灵越16plus7620升级M2硬盘

主机只支持一条M2硬盘,只能用更换更大容量硬盘的方式增加存储容量。 1、打开后盖,把新硬盘换上。旧硬盘装硬盘盒里,连上主机上。准备一个PE启动U盘, 2、开机不停地按F12,选U盘启动,进入PE,使用…...

视频怎么转mp4格式?分享3个宝藏方法,轻松学会

在当今数字化的时代,视频文件的格式多种多样,而MP4格式因其广泛的兼容性和高质量的压缩技术而备受青睐。然而,有时我们可能需要将其他格式的视频转换为MP4格式,以便在各种设备和平台上播放和分享视频。 在本文中,我们…...

Javascript 元二分搜索 | 单边二分查找(Meta Binary Search | One-Sided Binary Search)

元二分搜索(Steven Skiena 在《算法设计手册》第 134 页中也称为单边二分搜索)是二分搜索的一种修改形式,它以增量方式构建数组中目标值的索引。与普通二分搜索一样,元二分搜索需要 O(log n) 时间。 元二分搜索,也称为…...

柚见十三期(优化)

前端优化 加载匹配功能与加载骨架特效 骨架屏 : vant-skeleton index.vue中 /** * 加载数据 */ const loadData async () > { let userListData; loading.value true; //心动模式 if (isMatchMode.value){ const num 10;//推荐人数 userListData await myA…...

Node.js常用命令:了解Node.js的核心命令和用法

学习目标: 理解Node.js和npm的概念及其在开发中的作用;掌握Node.js的核心命令,包括node、npm、npx等;学会使用node命令来执行JavaScript文件和模块;熟悉npm命令,包括安装、更新、卸载依赖包等操作&#xf…...

QT 驾校系统界面布局编写

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(ui->label_img->width(),ui->label_img->height());//图片自适应窗口大小ui->label_img->setScaledContents(true);//图片置…...

【Auth Proxy】为你的 Web 服务上把锁

Auth Proxy 一个极简的用于 Web 服务鉴权的反向代理服务 极其简约的 UI对你的真实服务无任何侵入性支持容器部署,Docker Image 优化到不能再小(不到 9MB)GitHub:https://github.com/wengchaoxi/auth-proxy 效果 我在 http://lo…...

Docker 从0安装 nacos集群

前提条件 Docker支持一下的CentOs版本 Centos7(64-bit),系统内核版本为 3.10 以上Centos6.5(64-bit) 或者更高版本,系统内核版本为 2.6.32-431 或者更高版本 安装步骤 使用 yum 安装(CentOS 7下) 通过 uname -r 命令查看你当…...

keithley2612A数字源表

181/2461/8938产品概述: Keithley 2612A源表既可用作台式I-V表征工具,也可用作多通道I-V测试系统的构建模块组件。对于台式使用,吉时利2612ASourceMeter具有嵌入式TSP Express软件工具,允许用户快速轻松地执行常见的I-V测试&…...

AI助手 - 月之暗面 Kimi.ai

前言 这是 AI工具专栏 下的第四篇,这一篇所介绍的AI,也许是截至今天(204-03-19)国内可访问的实用性最强的一款。 今年年初,一直看到有人推荐 Kimi,不过面对雨后春笋般的各类品质的AI,说实话也有…...

《计算机考研精炼1000题》为你考研之路保驾护航

创作背景 在这个充满挑战与竞争的时代,每一位考生在备战研究生考试的过程中,都希望通过更多符合考纲要求的练习题来提高自己的知识和技能。为了满足这一需求,我们精心策划和编辑了这本《计算机考研精炼1000题》。在考研政治和考研数学领域&a…...

el-input添加keyup事件无响应

<el-input type"password" v-model"formData.password" keyup.enter"onSubmit"></el-input>使用 .native修饰符 有时&#xff0c;Vue 组件内部可能会处理某些事件&#xff0c;导致你不能直接在组件上监听这些事件。 在这种情况下&am…...

错误1075:依存服务不存在, 或已标记为删除的解决方法

错误1075&#xff1a;依存服务不存在&#xff0c; 或已标记为删除的解决方法 运行 sc config spooler depend rpcss 注意"depend “而不是"depend”。...

【Python】使用selenium对Poe批量模拟注册脚本

配置好接码api即可实现自动化注册登录试用一体。 运行后会注册账号并绑定邮箱与手机号进行登录试用。 测试结果30秒一个号 import re import time import requests from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.options imp…...

【Linux】编译器-gcc/g++的使用(预处理、编译、汇编、连接)

目录 01.预处理&#xff08;宏替换&#xff09; 02.编译&#xff08;生成汇编&#xff09; 03.汇编&#xff08;生成机器可识别码&#xff09; 04.连接&#xff08;生成可执行文件或库文件&#xff09; 05.选项 编译器在编译代码时包含以下四个步骤&#xff1a;1.预处理 2…...

【Linux】Linux安装软件---软件包管理器 yum

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;Linux_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.Linux中安装软件 1.1 源代码安装 1.2 rpm包安装 1.3 yum安装 1.3.1 举例 1.3.2 图示yum下载安装 2.Linux系统的生态 如何选…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...