全部博文(321)
分类: 嵌入式
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,关闭定时器0,manual update(0),而且还要把GPBCON 置0, 声音关掉
5.暂停:playsongflag = (++playsongflag)%2 ; //判断playsongflag是为1,还是为0,1执 行,0暂停
(playsongflag<1)?(++playsongflag):(playsongflag=0);
注:上一中用法会出现警告,后一种不会。