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

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

时钟

时钟和电源管理模块由三部分组成:时钟控制,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为400MMPLLCON	|=(127 << 12) | (2 << 4) | (1 << 0);}

PWM:脉宽控制

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

PWM控制蜂鸣器 

蜂鸣器驱动电路

接口为GPB0

需要配置GPB0引脚功能为TOUT0

	//配置GPB0(蜂鸣器接口)引脚功能为TOUT0GPBCON &= ~(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(蜂鸣器接口)引脚功能为TOUT0GPBCON &= ~(0x3<<0);  GPBCON |= (0x2<<0);	  TCFG0 &= ~(0xff<<0);TCFG0 |= (24<<0);	  //预分频值24 (24+1=25)TCFG1 &= ~(0xf<<0);	   //分频1/2TCNTB0 =2000;   //配置计数器TCMPB0 =1000;	  //配置比较器TCON &= ~(1<<4);  //关闭死区(死区发生器就是电流放大器)TCON |= (1<<3);	  //开启自动重载TCON |= (1<<2) ;  //开启变换极性(默认起始为低电平,需要修改为起始高电平)TCON |= (1<<1);   //更新比较器和计数器TCON |= (1<<0);	  //启动定时器TCON &= ~(1<<1);  //清除更新位
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小白遇上字符串解析问题,正则和原生字符串函数谁来救场?
  • 双绞线如何抑制传导干扰
  • DigitalOcean Kubernetes引入NVIDIA H100 GPU,助力 AI/ML 创新
  • 第R2周:LSTM-火灾温度预测
  • Java使用POI创建带样式和公式的Excel文件
  • 区块链Hyperledger Fabric2.2 环境搭建
  • OpenCV 旋转矩形边界
  • 2.ChatGPT的发展历程:从GPT-1到GPT-4(2/10)
  • 【FFMPEG】Install FFmpeg CUDA gltransition in Ubuntu
  • linux颜色
  • hadoop的sbin
  • 2.第二阶段x86游戏实战2-认识进制、理解数据宽度和位的概念
  • 智能提醒助理系列-小程序静默登录
  • 纯CSS实现卡片欢动效果
  • vite 打包 学习
  • codis proxy处理流程
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • CSS魔法堂:Absolute Positioning就这个样
  • HTTP 简介
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Linux快速复制或删除大量小文件
  • MQ框架的比较
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vue学习系列(二)vue-cli
  • Webpack 4 学习01(基础配置)
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 读懂package.json -- 依赖管理
  • 配置 PM2 实现代码自动发布
  • 前嗅ForeSpider中数据浏览界面介绍
  • 数组的操作
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​queue --- 一个同步的队列类​
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • # 计算机视觉入门
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)JAVA使用POI操作excel
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (转)JAVA中的堆栈
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • (自用)仿写程序
  • .NET 8 跨平台高性能边缘采集网关
  • .Net 路由处理厉害了
  • .net 微服务 服务保护 自动重试 Polly
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [AIGC] Java List接口详解
  • [Android] Amazon 的 android 音视频开发文档
  • [ANT] 项目中应用ANT
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [C]编译和预处理详解