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

Linux 硬件学习 s3c2440 arm920t蜂鸣器

1.查找手册时钟图,输入12m想要通过pll得到400m的信号

2.对比pll值,找到最近的为405,得到pll中mdiv为127,pdiv为2,sdiv为1

3.想要得到fclk400,hclk100,pclk50,对比分频比例,得到hdivn为2,pdivn为1

4.hclk要为fclk/4,要使得camdivn【9】为0,此时回到3,再回到2,会得到正确的分频

5.经过上部分操作,pclk为50m,pclk信号会通向有pwm脉冲调制

6.手册pwm框图

7.查看pwm驱动蜂鸣器图,需要高电平使得,蜂鸣器工作

8.将gpb0选择为tout0引脚,对应定时器0

9.500hz(一个周期2ms),占空比50%,则tcntb0设置为2000(通过一个信号减一次),则tcmpb0比较器(到达比较器的数值电平反转)设置为1000,其内部功能也要按需相应设置,例如一般为低电平到高电平,此次为确保停止时关闭,应开启输出变相,变为高电平到低电平,停止时则为低电平,蜂鸣器不会继续响

10.因为想要500hz的信号,而计数器为2000,则通过mux后的信号为2000*500 = 1Mhz,最开始的输入为12mhz,通过一个预分频器(八位),再通过一个四位分频器和选通门,降为1mhz,逆向推理,由四位到预分频,假如为1/4,则通过预分频器的信号为4,这样50要变为4,分频不为整数,我们最好要整数,排除,然后对比四位分频器和预分频器得到合理的数据,四分频器为1/2,预分频器为25,此时因为预分频器防止为0导致错误,会自动加1,所以设置为24即可。这样50mhz通过预分频(1/25)为2,再过四位分频(1/2)为1(四分频的1/2,通过选通门设置1/2通路),之后每通过一个信号计数减一次,一兆里面一兆个信号,2000个信号转换一次电平,一兆就可以有500次转换电瓶平,所以得到500赫兹的信号 便可有500hz的信号通过tout0引脚,再加上之前设置好的gpb0转tout0引脚,则可使蜂鸣器工作

11.实现代码

#include <s3c2440.h>//pll
void clk_init(void)
{// 配置 F :H :P  = 1 : 4 : 8CLKDIVN = (2 << 1) | (1 << 0);// 配置Fclk为400MMPLLCON = (127 << 12) | (2 << 4) | (1 << 0); 
}void pwm_init(void)
{//配置GPB0引脚功能为TOUT0GPBCON &= ~(0x3 << 0);GPBCON |= (0x2 << 0);TCFG0 &= ~(0xff << 0);TCFG0 |= (24 << 0);	   //预分频值 25TCFG1 &= ~(0xf << 0);  //分频 1/2TCNTB0 = 4000;TCMPB0 = 1000;TCON &= ~(1 << 4);  //关闭死区TCON |= (1 << 3);   //自动重载TCON |= (1 << 2);   //变换极性TCON |= (1 <<1);    //更新CMP和CNTTCON |= (1 << 0);   //启动定时器TCON &= ~(1 << 1);  //清除更新位
}void pwm_stop(void)
{TCON &= ~(1 << 0);	
}void main(void)
{clk_init();pwm_init();}

相关文章:

Linux 硬件学习 s3c2440 arm920t蜂鸣器

1.查找手册时钟图&#xff0c;输入12m想要通过pll得到400m的信号 2.对比pll值&#xff0c;找到最近的为405&#xff0c;得到pll中mdiv为127&#xff0c;pdiv为2&#xff0c;sdiv为1 3.想要得到fclk400&#xff0c;hclk100&#xff0c;pclk50&#xff0c;对比分频比例&#xff0…...

提交保存,要做重复请求拦截,避免出现重复保存的问题

**问题&#xff1a;**前端ajax提交数据的时候&#xff0c;当频繁点击的时候&#xff0c;或者两个账号以相同数据创建的时候&#xff0c;会出现问题。 **处理办法&#xff1a;**前端拦截&#xff0c;防止重复提交数据&#xff0c;在上一次请求返回结果之后才允许提交第二次&…...

华为 HCIP-Datacom H12-821 题库 (3)

有需要题库的可以看主页置顶​​​​​​​ 1.运行 OSPF 协议的路由器在交互 DD 报文时&#xff0c;会使用以下哪一个参数选举主从关系&#xff1f; A、接口的 IP 地址 B、接口的 DR 优先级 C、Area ID D、Router ID 答案&#xff1a;D 解析&#xff1a; Router-ID 大的为主&a…...

spring-boot 事件

事件触发时机常用监听器描述ApplicationStartingEvent应用启动时LoggingApplicationListener&#xff1a;决定加载哪个日志系统ApplicationEnvironmentPreparedEvent创建Environment之后BootstrapApplicationListener&#xff1a;加载spring-cloud bootstrap配置文件&#xff1…...

合碳智能 × Milvus:探索化学合成新境界——逆合成路线设计

合碳智能&#xff08;C12.ai&#xff09;成立于2022年&#xff0c;致力于运用AI和具身智能技术&#xff0c;为药物研发实验室提供新一代智能化解决方案&#xff0c;推动实验室从自动化迈向智能化&#xff0c;突破传统实验模式与人员的依赖&#xff0c;解决效率和成本的瓶颈&…...

二分查找 | 二分模板 | 二分题目解析

1.二分查找 二分查找的一个前提就是要保证数组是有序的&#xff08;不准确&#xff09;&#xff01;利用二段性&#xff01; 1.朴素二分模板 朴素二分法的查找中间的值和目标值比较 while(left < right) // 注意是要&#xff1a; < {int mid left (right -left) / 2;…...

uni-app应用更新(Android端)

关于app更新&#xff0c;uni-app官方推荐的是 uni-upgrade-center&#xff0c;看了下比较繁琐&#xff0c;因此这里自己实现检查更新并下载安装的逻辑。 1.界面效果 界面中的弹框和 进度条采用了uView 提供的组件 2.检查更新并下载安装 一、版本信息配置在服务端&#xff0c…...

JavaEE(2):前后端项目之间的交互

现在&#xff0c;在网页中通过超链接&#xff0c;表单就可以向后端发送请求&#xff0c;后端也可以正常响应内容。 以前通过表单访问后端的请求方式称为同步请求 同步请求 当网页与后端交互时&#xff0c;前端不能再进行其他操作 服务器端响应回来的内容&#xff0c;会把整个浏…...

(已开源-CVPR 2024)YOLO-World: Real-Time Open-Vocabulary Object Detection

169期《YOLO-World Real-Time Open-Vocabulary Object Detection》 You Only Look Once (YOLO) 系列检测模型是目前最常用的检测模型之一。然而&#xff0c;它们通常是在预先定义好的目标类别上进行训练&#xff0c;很大程度上限制了它们在开放场景中的可用性。为了解决这一限制…...

Spring6梳理4——SpringIoC容器

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 4.1 前言 4.2 IoC容器 4.2.1 控制反转(IoC) 4.2.2 依赖注入 4.2.3 IoC容器在Spri…...

SpringBoot2:请求处理原理分析-FORM表单请求接口

一、RESTFUL简介 Rest风格支持&#xff08;使用HTTP请求方式&#xff0c;动词来表示对资源的操作&#xff09; 以前&#xff1a;/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在&#xff1a; /user GET-获取用户 DELETE-删除用户 PUT-修改…...

Monkey日志ANR、CRASH、空指针异常及其他异常数据分析

引言 在Android开发过程中&#xff0c;monkey测试是一种常用的随机测试手段&#xff0c;用于模拟用户的各种操作来发现应用中的稳定性问题。通过monkey测试生成的日志文件包含了丰富的信息&#xff0c;包括应用程序崩溃&#xff08;Crash&#xff09;、无响应&#xff08;ANR&…...

Vue 3结合Element Plus中,实现一个级联选择器(Cascader)来展示省市区

在Vue 3结合Element Plus中&#xff0c;实现一个级联选择器&#xff08;Cascader&#xff09;来展示省市区&#xff08;甚至到更细分的级别&#xff0c;如街道、小区等&#xff09;的联动选择是一个常见的需求。Element Plus的Cascader组件非常适合这样的场景&#xff0c;因为它…...

使用卫星仿真软件STK的一些应用和思考(星地链路、星间链路)

目录 任务描述利用STK建模星地协同系统3个GEO高轨卫星240/20/1 Walker-Star Constellation 低轨卫星星座地面站或者地面设备 链路建模与数据提取处理星地链路星间链路数据读取的几种方法最麻烦的方法使用Matlab与STK互联接口使用大规模使用Chain 总结 任务描述 在一个星地协同…...

pytorch对不同的可调参数,分配不同的学习率

在 PyTorch 中&#xff0c;你可以通过为优化器传递不同的学习率来针对不同的可调参数分配不同的学习率。这通常通过向优化器传递一个字典列表来实现&#xff0c;其中每个字典指定特定参数组的学习率。下面是一个示例代码&#xff0c;展示了如何实现这一点&#xff1a; import …...

零基础学习Python(八)—— time模块、request模块、数据分析和自动化办公相关模块、jieba模块、文件操作和os相关模块的简单介绍

1. time模块 time()&#xff1a;获取当前时间戳&#xff0c;是一个数字 localtime()&#xff1a;返回一个time.struct_time对象&#xff0c;里面有年月日时分秒&#xff0c;还有星期几&#xff08;0表示星期一&#xff09;和今年的第几天 import timeprint(time.time()) pri…...

快速回顾-HTML5

HTML5-常用的标签&#xff1a;https://blog.csdn.net/TKOP_/article/details/111395865 <!-- HTML5:声明文档类型的标签 --> <!DOCTYPE html><!-- 用于声明网页的主要语言为简体中文 --> <!-- 帮助搜索引擎、浏览器等理解网页的语言内容&#xff0c;以便…...

视频技术未来展望:EasyCVR如何引领汇聚融合平台新趋势

随着科技的飞速发展&#xff0c;视频技术已成为现代社会不可或缺的一部分&#xff0c;广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。本文将探讨视频技术的未来发展趋势&#xff0c;并深入分析TSINGSEE青犀EasyCVR视频汇聚融合平台的技术优势&#xff0c;展现其…...

7个流行的开源数据治理工具

数字化时代&#xff0c;数据是已经成为最宝贵的资产之一。数据支撑着我们的政府、企业以及各类组织的所有流程&#xff0c;并为决策以及智能化服务提供支撑。大数据有大用途&#xff0c;但是也可能隐藏着巨大的风险&#xff0c;特别是如果我们对数据的情况不是很了解的时候&…...

js | XMLHttpRequest

是什么&#xff1f; 和serve交互数据的对象&#xff1b;能够达到页面部分刷新的效果&#xff0c;也就是获取数据之后&#xff0c;不会使得整个页面都刷新&#xff1b;虽然名字是XML&#xff0c;但不限于XML数据。 怎么用&#xff1f; function reqListener() {console.log(thi…...

Pixel Script Temple 快速上手:5步完成Visual Studio Code集成与调用

Pixel Script Temple 快速上手&#xff1a;5步完成Visual Studio Code集成与调用 1. 引言 作为一名开发者&#xff0c;你是否经常遇到这样的场景&#xff1a;面对复杂的业务逻辑需要快速生成代码框架&#xff0c;或者需要为已有代码添加详细注释&#xff1f;Pixel Script Tem…...

AudioSeal Pixel Studio效果展示:蓝牙传输(SBC编码)后水印留存实测

AudioSeal Pixel Studio效果展示&#xff1a;蓝牙传输&#xff08;SBC编码&#xff09;后水印留存实测 1. 引言&#xff1a;当隐形水印遇上蓝牙传输 想象一下&#xff0c;你为一段重要的音频文件加上了数字水印&#xff0c;就像给它盖上了一枚隐形的数字印章。这枚印章能证明…...

**Pandas实战进阶:用“链式操作+自定义函数”重构数据清洗流程,效率提升3倍不止!**在日常数据分析中,我

Pandas实战进阶&#xff1a;用“链式操作自定义函数”重构数据清洗流程&#xff0c;效率提升3倍不止&#xff01; 在日常数据分析中&#xff0c;我们常遇到这样的场景&#xff1a;从原始CSV文件加载数据后&#xff0c;需要进行多步清洗——缺失值填充、类型转换、去重、分组聚合…...

SQL查询语句--EXISTS子查询

EXISTS子查询的逻辑是先查询外层数据&#xff0c;再逐行进行EXISTS子查询。外层查询出的每条记录都执行一EXISTS子查询&#xff0c;EXISTS子查询为TRUE则保留当前记录&#xff0c;为FALSE则不保留。例如&#xff1a;需求&#xff1a;查询选择了课程号C_id为1的学生学号和姓名。…...

3小时搞定OpenClaw飞书机器人:Phi-3-mini-128k-instruct对话集成

3小时搞定OpenClaw飞书机器人&#xff1a;Phi-3-mini-128k-instruct对话集成 1. 为什么选择OpenClaw飞书Phi-3-mini组合 上周三下午4点&#xff0c;我正在为团队周会纪要焦头烂额时&#xff0c;突然想到&#xff1a;能不能让AI自动把飞书会议录音转成结构化纪要&#xff1f;经…...

Blazor WebAssembly AOT编译踩坑实录(含.NET 9 RTM正式版12类崩溃场景+符号映射调试秘钥)

第一章&#xff1a;Blazor WebAssembly AOT编译的核心价值与2026演进定位Blazor WebAssembly 的 AOT&#xff08;Ahead-of-Time&#xff09;编译自 .NET 6 起引入&#xff0c;并在 .NET 7/8 中持续优化&#xff0c;其核心价值在于将 C# 代码直接编译为高度优化的 WebAssembly 二…...

Twisted:开源栈式 JS 虚拟机(JSVMP)功能介绍、痛点、后续计划

Twisted&#xff1a;开源栈式 JS 虚拟机&#xff08;JSVMP&#xff09;功能介绍、痛点、后续计划 仓库&#xff1a;github.com/0xfffb/twisted 测试地址&#xff1a;click 定位 Twisted 是用 TypeScript 实现的栈帧式 JSVMP 工具链&#xff1a;将子集 JavaScript 编译为自定…...

MCP3221 12位I²C ADC驱动设计与精度优化实战

1. MCP3221 12位IC模数转换器底层驱动技术解析MCP3221是Microchip公司推出的超低功耗、单通道、12位分辨率的串行模数转换器&#xff08;ADC&#xff09;&#xff0c;采用标准IC总线接口&#xff0c;工作电压范围宽达2.7V至5.0V&#xff0c;静态电流典型值仅仅为1.5μA&#xf…...

【毫米波混合波束成形】第8章 硬件不完美性与鲁棒AI设计

目录 第一部分&#xff1a;原理详解 8.1 低分辨率量化感知神经网络 8.1.1 1-bit与有限精度移相器建模 8.1.1.1 量化噪声的统计分布建模 8.1.1.1.1 量化感知训练&#xff08;QAT&#xff09;中的直通估计器原理与方差分析 8.1.1.1.2 软量化替代函数&#xff08;Sigmoid/Tan…...

Arduboy光线投射渲染库:8位MCU上的实时3D引擎

1. ArduboyRaycast 库概述ArduboyRaycast 是一个专为 Arduboy 平台设计的轻量级光线投射&#xff08;Raycasting&#xff09;渲染库&#xff0c;面向资源极度受限的 8-bit AVR 微控制器&#xff08;ATmega32U4&#xff0c;16MHz&#xff0c;2.5KB RAM&#xff0c;32KB Flash&am…...