ARM驱动蜂鸣器的方法有两种:一种是PWM输出口直接驱动,另一种是运用IO守时翻转电平发生驱动波形对蜂鸣器进行驱动。PWM输出口直接驱动是运用PWM输出口自身能够输出必定的方波来进行驱动。在ARM中能够用几个特别功用寄存器对占空比和周期进行设置。经过设置这些寄存器发生契合蜂鸣器要求的方波后,这个时分运用这个方波就能够对蜂鸣器进行驱动了。运用PWM时,经过TCMPn能够决议脉宽,TCNTn决议频率,TCMPn/TCNTn决议占空比。运用IO口电平翻转时,需求运用守时器来做守时,经过守时翻转发生契合要求频率的波形。因为蜂鸣器一般的作业电流比较大,以至于IO口无法驱动,一般运用扩大电路来驱动,一般运用三极管来扩大电流就能够了。
运用PWM操控蜂鸣器:
rTCFG0用来设置预分频值,rTCFG1用来设置多路选择器MUX的分频值,TCNTB0也起到分频效果。运用PWM操控蜂鸣器留意设置GPB0为TOUT0。这儿设置PWM频率为1HZ,占空比50%,也便是半秒响一次。S3C2440守时器中有双缓冲rTCNTBn,rTCMPBn,他们是能够经过编程拜访的,他们会将数据主动装入rTCNTn,rTCMPn,这两个16位计数器对程序员来说是通明的。
一般发动守时器的过程如下:
- 将初始值写入到rTCNTn,rTCMPn
- 设置对应守时器的手动更新位,主动装载
- 发动守时器,并封闭手动更新位