S3C2440开发板:时钟,PWM定时器控制蜂鸣器发声

news2024/11/23 19:25:36

时钟

时钟和电源管理模块由三部分组成:时钟控制,USB 控制和电源控制。

S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号,包括 CPU 的 FCLKAHB 总线外设的 HCLK 以及 APB 总线外设的 PCLK。S3C2440A 包含两个锁相环(PLL):一个提供给 FCLK、HCLK 和 PCLK,另一个专用于 USB 模块(48MHz)。  

使用外部晶振作为主时钟源 

 配置 F :H :P  = 1 : 4 : 8

FCLK:400

HCLK:100

PCLK:50

配置Fclk为400M

输入12M,输出400M,配置MPLL的  M:127    P:2     S:1

代码

void clk_init(void)
{
	//配置 F : H : P =1 : 4 : 8;
	CLKDIVN = (2 << 1) | (1 << 0);
	//配置Fclk为400M
	MPLLCON	|=(127 << 12) | (2 << 4) | (1 << 0);

}

PWM:脉宽控制

周期:一次高电平开始到下次高电平开始之间的时间
频率: 1/T
占空比:高电平占整个周期的时间比

PWM控制蜂鸣器 

蜂鸣器驱动电路

接口为GPB0

需要配置GPB0引脚功能为TOUT0

	//配置GPB0(蜂鸣器接口)引脚功能为TOUT0
	GPBCON &= ~(0x3<<0);  
	GPBCON |= (0x2<<0);	 

 定时器原理图

选择定时器0 

设置预分频值(TCFG0) 

	TCFG0 &= ~(0xff<<0);
	TCFG0 |= (24<<0);	  //预分频值24(24+1=25)

设置分频值(TCFG1) 

	TCFG1 &= ~(0xf<<0);	   //分频1/2

设置计数器(TCNTB0)

设置比较器(TCMPB0)

TCNTB0 =2000;   //配置计数器
TCMPB0 =1000;	  //配置比较器

 设置定时器的控制器

	TCON &= ~(1<<4);  //关闭死区(死区发生器就是电流放大器)
	TCON |= (1<<3);	  //开启自动重载
	TCON |= (1<<2) ;  //开启变换极性
	TCON |= (1<<1);   //更新比较器和计数器
	TCON |= (1<<0);	  //启动定时器
	TCON &= ~(1<<1);  //清除更新位

代码

void pwm_init(void)
{	//配置GPB0(蜂鸣器接口)引脚功能为TOUT0
	GPBCON &= ~(0x3<<0);  
	GPBCON |= (0x2<<0);	  

	TCFG0 &= ~(0xff<<0);
	TCFG0 |= (24<<0);	  //预分频值24 (24+1=25)

	TCFG1 &= ~(0xf<<0);	   //分频1/2

	TCNTB0 =2000;   //配置计数器
	TCMPB0 =1000;	  //配置比较器

	TCON &= ~(1<<4);  //关闭死区(死区发生器就是电流放大器)
	TCON |= (1<<3);	  //开启自动重载
	TCON |= (1<<2) ;  //开启变换极性(默认起始为低电平,需要修改为起始高电平)
	TCON |= (1<<1);   //更新比较器和计数器
	TCON |= (1<<0);	  //启动定时器
	TCON &= ~(1<<1);  //清除更新位
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QT新建项目并运行操作步骤

1、打开qt creator 2、选择new project后选择qt widgets application&#xff0c;点choose 3、输入工程名称和存储路径 4、点击下一步 5、选择Qwidget 6、点击下一步&#xff0c;完成项目新建 7、点击运行&#xff0c;程序即可运行结果&#xff0c;显示一个界面

U盘加密软件哪个好用?盘点2024最受欢迎的10款U盘加密软件(数据安全)

随着信息安全越来越受到重视&#xff0c;U盘作为便捷的数据存储工具&#xff0c;在携带和传输重要文件时&#xff0c;往往面临数据泄露和丢失的风险。为此&#xff0c;选择一款好用且安全的U盘加密软件变得尤为重要。 为了帮助大家在2024年更好地保护敏感数据&#xff0c;以下…

Vue如何将网页转换成图片或PDF并上传

一.使用html2canvas获取页面元素并绘制成图片 htmlcanvas中文文档 npm install --save html2canvas<template><div><button click"uploadImg">上传</button><div ref"yourDom"><!-- ...图片中页面内容 --><img s…

【Linux】自定义协议与序列化和反序列化

一、自定义协议 1.1 自定义报文格式 在前面的博客中&#xff0c;我们可以知道在TCP协议中&#xff0c;面向的是字节流&#xff1b;而UDP协议中面向的是数据报。因此&#xff0c;在手写简单的TCP和UDP服务器中&#xff0c;所使用的是接收函数和发送函数不同。因此&#xff0c;在…

docker images

docker 装好docker之后&#xff0c;先掌握一下docker启动与停止 docker启动关闭状态 systemctl 命令是系统服务管理器指令&#xff0c;它是 service 和 chkconfig 两个命令组合。 查看 docker 的启动状态 systemctl status docker关闭 docker systemctl stop docker启动 …

基于空间结构光场照明的三维单像素成像

单像素成像是一种新兴的计算成像技术。该技术使用不具备空间分辨能力的单像素探测器来获取目标物体或场景的空间信息。单像素探测器具有高的时间分辨率、光探测效率和探测带宽&#xff0c;因此单像素光学成像技术在散射、弱光等复杂环境下相较于传统面阵成像技术展现了很大优势…

A题 农村公交与异构无人机协同配送优化

1.1问题背景 农村地区的独特地理和社会结构带来了配送上的特殊挑战。复杂的地形&#xff0c;如山地和河流等自然障碍&#xff0c;使得道路建设困难重重&#xff0c;导致道路网络稀疏&#xff0c;而分散的配送点进一步增加了物流的复杂性。这些因素叠加&#xff0c;使得传统配送…

linux top命令介绍以及使用

文章目录 介绍 top 命令1. top 的基本功能2. 如何启动 top3. top 的输出解释系统概况任务和 CPU 使用情况内存和交换空间进程信息 4. 常用操作 总结查看逻辑CPU的个数查看系统运行时间 介绍 top 命令 top 是一个在类 Unix 系统中广泛使用的命令行工具&#xff0c;用于实时显示…

建模导论的最后一个视频笔记

建模的目的&#xff1a;解决贴合题意的问题&#xff0c;用合适的方法解决问题前提&#xff1a;理解题意&#xff0c;知道题目在说什么&#xff0c;前提的前提&#xff1a;了解题目的背景&#xff0c;知道题目这类问题的常见概念&#xff0c;了解这方面的知识如果是数据题&#…

常见的网络安全服务大全(汇总详解)

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene21#wechat_redirect 《网安面试指南》…

若楠带你初识OpenCV(4) -- 图像边缘检测

文章目录 OpenCV图像边缘检测sobel 算子1. x方向上的边缘2. 保存负值3. 取绝对值4. y方向上的边缘5. 加权运算不要双方向同时卷积读取猪猪侠查看效果 Scharr 算子Laplacian 算子 canny边缘检测优点理论步骤四部分1. 图像降噪2. 梯度计算3. 非极大值抑制4. 双阈值边界跟踪 示例应…

【QT | 开发环境搭建】windows系统(Win10)安装 QT 5.12.12 开发环境

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 本文未经允许…

WebStorm用Debug模式调试Vue项目

问题说明 开发前端代码时&#xff0c;一直很苦恼调试前端代码的麻烦。 简单的内容可以通过console.log()在控制台打印变量值&#xff0c;来验证预期结果。 涉及到稍复杂的逻辑&#xff0c;就需要在代码中侵入增加debugger&#xff0c;或者在浏览器中找到js文件&#xff0c;再手…

Linux 之 mysql-5.7.44 下载/安装(离线)

下载 官网 MySQL :: Download MySQL Community Server (Archived Versions) 安装 1.解压并放到指定目录&#xff08;/home/mysql&#xff09; tar -zxvf mysql-5.7.44-el7-x86_64.tar.gz 移动到指定安装位置&#xff08;我的&#xff1a;/home 下&#xff09; mv mysql-5.…

实操在聆思CSK6大模型开发板的英文评测SDK中自定义添加单词、短语、句子资源

引言 英文评测示例通过对用户语音输入的英文单词进行精准识别&#xff0c;提供 单词、短语、句子 三种类型&#xff0c;用户在选择好类型后&#xff0c;可根据屏幕上的提示进行语音输入&#xff0c;评测算法将对输入的英文语音进行精准识别&#xff0c;并对单词的发音、错读、漏…

Codeforces Round 970 (Div. 3)(ABCDEF)

Codeforces Round 970 (Div. 3) A:Sakurakos Exams 签到 题意:给定1,2的数量,判断是否能用加减符号使得这些1,2计算出0 void solve() {cin>>n>>m;if(n%2)cout<<"NO\n";else{if(m%20||n)cout<<"YES\n";else cout<<"…

作为前端,感受一下MemFire Cloud带来的魅力

作为一名前端开发者&#xff0c;你是否曾为后台开发的繁琐和复杂而头疼&#xff1f;是否想过只需要专注于前端界面&#xff0c;而所有的后端工作都能一键搞定&#xff1f;如果你有这些想法&#xff0c;那么MemFire Cloud 无疑会成为你开发路上的新神器。 什么是MemFire Cloud…

SpringBoot学习(8)RabbitMQ详解

RabbitMQ 即一个消息队列&#xff0c;主要是用来实现应用程序的异步和解耦&#xff0c;同时也能起到消息缓冲&#xff0c;消息分发的作用。 消息中间件最主要的作用是解耦&#xff0c;中间件最标准的用法是生产者生产消息传送到队列&#xff0c;消费者从队列中拿取消息并处理&…

搞定JavaScript异步原理,深入学习Promise

JS异步及Promise基础 一、从浏览器运行机制说起 来破案啦&#xff0c;常说的“多线程的浏览器、单线程的Javascript”到底是什么意思&#xff1f;单线程的Javascript是否真的需要抽身去计时、去发http请求&#xff1f;第一部分我们重新从浏览器运行机制开始认识一下JavaScript…

828华为云征文 | Flexus X实例与华为云EulerOS的Tomcat安装指南

文章目录 前言安全组设置操作步骤软件安装配置软件验证Tomcat安装是否成功 总结 前言 Tomcat是一个由Apache软件基金会开发并维护的免费、开源的Web应用服务器。它主要用于处理Java Servlet、JavaServer Pages&#xff08;JSP&#xff09;和JavaServer Pages Standard Tag Lib…