当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 >
轻松学ARM系列之玩转蜂鸣器
时间:2018-08-16作者:华清远见

作者:熊老师,华清远见教育科技集团讲师。

今天我们来学习轻松学arm系列之玩转蜂鸣器,基于arm的cortex_a8内核的三星S5PV210开发平台。

那么我们来看一下如何学习使用pwm控制蜂鸣器?

一、总体架构图

 

 

搞定蜂鸣器之前需要我们对三星的GPIO简介的相关章节有一定的了解,主要是timer 定时器。

二、玩转定时器的几个要领

2.1 查看开发板上蜂鸣器的连接的原理图

蜂鸣器对应的原理图

 

 

核心板的对应的原理图

 

 

2.2 选中GPD0CON配置寄存器的xpwmTOUT1功能

 

 

GPD0.GPD0CON = ((~(0xf 0))& GPD0CON)| (0x2 << 4);选为pwm输出功能

2.3 配置预分频和分频寄存器的配置

 

 

 

 

配置预分频的值,TIMER.TCFG0 = (TIME.TCFG0 & (~0xff)) | 0xff ;

预分频的值设置为255 + 1

 

 

配置分频的值为16分频:

TIMR.TCFG1 = (TIME.TCFG1 & (~0xf0))| (0x4 << 4);

2.4 设置缓冲计数器的寄存器值和缓冲比较器的值

工作原理:计数器的值每隔一个时钟周期,做减1操作,如果减到值与比较器的值相等那么进行高低电平的转换,继续递减1,直到为0,那么翻转,实现了一个完整的方波周期

 

 

 

 

设置计数缓冲区寄存器值

TIME.TCNTB1 = XXX; 设置总周期,一个pwm

设置比较缓冲区寄存器值

TIME.TCMPB1 = XXX/2; 设置是占空比

2.5 手动更新缓冲寄存器中的值到计数器中

设置pwm的步骤:

 

 

 

 

 

 

 

 

根据是1.3.15的第二步,先设置手动更新,在清除手动更新,启动定时器

手动更新,使缓冲器中的值更新到计数器中,双缓冲机制

TIME.TCON = TIME.TCON & (0x0e << 8) ; 0000 1110

清除手动更新位,启动定时器。 0000 1101 0x0d

TIME.TCON = TIME.TCON & (0x0d << 8) ;


发表评论

全国咨询电话:400-611-6270,双休日及节假日请致电值班手机:15010390966

在线咨询: 曹老师QQ(3337544669), 徐老师QQ(1462495461), 刘老师 QQ(3108687497)

企业培训洽谈专线:010-82600901,院校合作洽谈专线:010-82600350,在线咨询:QQ(248856300)

Copyright 2004-2018 华清远见教育科技集团 版权所有 ,京ICP备16055225号,京公海网安备11010802025203号