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

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.mrgr.cn/news/29941.html

相关文章:

  • 智源推出下一代检索增强大模型框架MemoRAG
  • Perl 进程管理
  • Exchange Online 计划 1部署方案
  • 高效开发,从暗藏玄机的文件系统开始—合宙Air201资产定位模组LuatOS
  • 每日学习一个数据结构-红黑树
  • Python面试宝典第50题:分割等和子集
  • vue的插槽
  • 11 - TCPClient实验
  • 深入理解Python中的数据结构:元组(Tuple)
  • DevEco Profiler调优工具(一)
  • XTuner 微调个人小助手认知任务
  • 读构建可扩展分布式系统:方法与实践08微服务
  • 关于嵌入式硬件需要了解的基础知识
  • Vue学习记录之四(watch侦听器和watchEffect高级侦听器)
  • 问:Java中的多线程有哪些实现方式?
  • 【新手上路】衡石分析平台使用手册-租户管理
  • 如何全局修改Git的邮箱、用户名?
  • 比特币10年价格数据(2014-2024)分析(进阶2_时间序列分析)
  • windows10下tomcat安装及配置教程
  • Linux系统性能调优技巧详解