Chinaunix首页 | 论坛 | 博客
  • 博客访问: 815113
  • 博文数量: 321
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 936
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 11:25
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(10)

2015年(61)

2014年(187)

2013年(62)

分类: 嵌入式

2014-05-14 23:16:17

蜂鸣器(用定时器0)与定时器1类似:多了一个比较寄存器

1.speak,可以确定GPB0-->TOUT0---->TIME0,设置为输出状态。0,不响。

原理:由于GPB0的正负(0/1)电压可以让蜂鸣器的响和不响,也就是使吸附片收放收放,通过改变频率,就可以产生不同的声音。那跟定时器有啥关系呢?答:因为通过GPB0和对应的TOUT0可知,对应的定时器0有个输出管脚是TOUT0,所以用定时器0,通过设置寄存器,如当倒数到TCNTBn的值,则反转,数到0产生中断。TCNTBn影响占空比,也就是脉宽,脉宽影响音色,但不会影响频率。至于什么音色好听,可以找音色对应表。在arm_ppt

如  100    40        0/100      40        0/   

-----------          ---------------  

          -------------           -----------

2.start_buzzer==time0(频率(与下面playsong对应)),GPBCON(定时器0无中断处 理函数,不需要中断

3.TCMPB比较器,可影响音色和音量,个人板的状态。音量不确定

4.stop_buzzer;关闭定时器,关闭GPB0口,TCON bit[0]0,关闭定时器0manual update(0),而且还要把GPBCON 置0, 声音关掉

5.暂停:playsongflag = (++playsongflag)%2 ;  //判断playsongflag是为1,还是为0,1 行,0暂停

(playsongflag<1)?(++playsongflag):(playsongflag=0);

注:上一中用法会出现警告,后一种不会。

 

阅读(543) | 评论(0) | 转发(0) |
0

上一篇:5-timer

下一篇:8-IIC

给主人留下些什么吧!~~