【WCE】使用 8253 定时器蜂鸣 (CEPC BSP)

本文介绍了在Windows CE系统中,由于缺少Beep函数,如何通过研究8253定时器的工作原理来实现蜂鸣功能。文章详细阐述了8253定时器蜂鸣的原理,并提供了C/C++实现Beep函数的代码示例。
摘要由CSDN通过智能技术生成

通过测试,我们发现 Windows CE 没有实现 Beep 函数,亦注意到 x86 嵌入式系统在运行 Windows XPe 时能通过调用 Beep 函数来驱动蜂鸣器蜂鸣。经过对 Beep 函数反向工程以及 8253 定时器蜂鸣原理的研究,我们相信在 Windows CE 下同样能够蜂鸣。

首先,讲解一下早期 PC 上的 8253 定时器蜂鸣原理:

图中 CLOCK 是时钟(fc=1,193,180 Hz);GATE2 是片选;OUT2 是输出引脚,用于调制声波;COUNT 是计数寄存器;CONTROL 是控制寄存器,各位定义如下:

<
Bits 7,6 Channel ID (11 is illegal)
Bits 5,4 Read/load mode for two-byte count value:
  00 -- latch count for reading
  01 -- read/load high byte only
  10 -- read/load low byte only
  11 -- read/load low byte then high byte
Bits 3,2,1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值