执行期间不需要MCU干预,只要设置好并启动就OK了。不必像51单片机那样需要MCU循环反转IO口
RL78G13有两个蜂鸣器输出:PCLBUZ0和PCLBUZ1.板子上都引出来了。
单独的输出驱动喇叭是没问题的,不需要再进行放大什么的。
如果需要使用Fsub分频输出,在生成代码的时候应该将Fsub clock setting里边的operation勾选。这样在生成代码的时候会加入外部慢速时钟的初始化功能
蜂鸣器的初始化代码如下,这是代码生成器生成的,我将频率设置成了3.9KHZ,频率高了喇叭没反应:
void PCLBUZ0_Init(void)
{
PCLOE0 = 0U; /* disable PCLBUZ0 operation */
CKS0 &= (UCHAR)~_0F_PCLBUZ_OUTCLK_CLR;
CKS0 |=_07_PCLBUZ_OUTCLK_fMAIN7; //此处设置频率,详见手册438页
/* Set PCLBUZ0 pin */
P14 &= 0xFEU;
PM14 &= 0xFEU;
}
启动:
void PCLBUZ0_Start(void)
{
PCLOE0 = 1U; /* enable PCLBUZ0 operation */
}
停止:
void PCLBUZ0_Stop(void)
{
PCLOE0 = 0U; /* disable PCLBUZ0 operation */
}
视频: