当前位置: 首页 > 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取代,而什么样的技术还能把握在人类手中呢?)

http://www.lryc.cn/news/321508.html

相关文章:

  • js进阶-深入对象-内置构造函数-包装类
  • Linux作业
  • 信息发布系统
  • Dell Inspiron 戴尔灵越16plus7620升级M2硬盘
  • 视频怎么转mp4格式?分享3个宝藏方法,轻松学会
  • Javascript 元二分搜索 | 单边二分查找(Meta Binary Search | One-Sided Binary Search)
  • 柚见十三期(优化)
  • Node.js常用命令:了解Node.js的核心命令和用法
  • QT 驾校系统界面布局编写
  • 【Auth Proxy】为你的 Web 服务上把锁
  • Docker 从0安装 nacos集群
  • keithley2612A数字源表
  • AI助手 - 月之暗面 Kimi.ai
  • 《计算机考研精炼1000题》为你考研之路保驾护航
  • el-input添加keyup事件无响应
  • 错误1075:依存服务不存在, 或已标记为删除的解决方法
  • 【Python】使用selenium对Poe批量模拟注册脚本
  • 【Linux】编译器-gcc/g++的使用(预处理、编译、汇编、连接)
  • 【Linux】Linux安装软件---软件包管理器 yum
  • QT网络编程之获取本机网络信息
  • 离线安装docker、docker-compose、Mysql镜像
  • Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
  • 数据库基本介绍及编译安装mysql
  • 代码随想录算法训练营第55天 | 583. 两个字符串的删除操作, 72. 编辑距离
  • Guava之EventBus源码分析
  • Spark on Yarn安装配置
  • Debezium日常分享系列之:Debezium 2.5.3.Final发布
  • elment-ui el-tabs组件 每次点击后 created方法都会执行2次
  • sheng的学习笔记-AI-Network in Network(NIN)和1*1卷积
  • 【靶机测试--PHOTOGRAPHER: 1【php提权】】