当前位置: 首页 > article >正文

C编程演奏中文版“生日快乐歌”

有了《C编程控制PC蜂鸣器》一文的基础后,我们在其基础上修改函数入口参数,由原来的1个参数(频率)改为现在的2个(频率、延时<即该频率响多长时间>),然后就按照节奏实现中文版的“生日快乐歌”,其源码如下:

#include <unistd.h>
#include <sys/io.h>

/* The clock frequency of the i8253/i8254 PIT */
#define PIT_TICK_RATE 1193182ul

void beep(unsigned int freq, unsigned int delay)
{
        unsigned int count = PIT_TICK_RATE / freq;
        iopl(3);
        outb_p(0xB6, 0x43);
        outb_p(count & 0xFF, 0x42);
        outb((count >> 8) & 0xFF, 0x42);
        outb_p(inb_p(0x61) | 3, 0x61);
        usleep(1000*delay);
        outb_p(inb_p(0x61) & 0xfc, 0x61);
        io


http://www.kler.cn/a/310407.html

相关文章:

  • react 中 useContext Hook 作用
  • 【算法一周目】双指针(2)
  • 学习记录:js算法(九十二):克隆图
  • 软件测试:测试用例详解
  • acwing算法基础02一高精度,前缀和,差分
  • @ComponentScan:Spring Boot中的自动装配大师
  • Java html生成pdf和图片
  • 【kafka】基本概念
  • SAP学习笔记 - 开发06 - CDSView + Fiori Element 之 List Report
  • Vue3 项目引入阿里 iconfont 图标和字体的多种方式
  • 2024 VMpro 虚拟机中如何给Ubuntu Linux操作系统配置联网
  • 总结拓展十:SAP开发计划(上)
  • 新峰商城之分类三级联动实现
  • PyQt / PySide + Pywin32 + ctypes 自定义标题栏窗口 + 完全还原 Windows 原生窗口边框特效项目
  • html+css+js网页设计 旅游 龙门石窟8个页面
  • HarmonyOS ArkTS 用户首选项的开发及测试
  • AI大模型与产品经理:替代与合作的深度剖析
  • 概率论原理精解【14】
  • 计算机网络(七) —— https协议与网络安全证书
  • 问:Java中如何优雅退出线程?
  • 切换淘宝最新npm镜像源是
  • Day26_0.1基础学习MATLAB学习小技巧总结(26)——数据插值
  • 软件开发小程序服务器怎么挑选
  • 华为od手撕-数组元素top1
  • netstat命令详解
  • Vue 3 Composition API 实战技巧:组件间通信与SPA架构