- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在努力在 PIC32 器件上生成提示音。我找到的信息还不足以让我完全了解如何实现这一目标。据我了解,PWM 信号以指定的占空比和频率发送 1 和 0,这样就可以使某些物体以特定的速度旋转。但仅仅产生音调还不够。我主要关注以下两个链接来创建代码:
http://umassamherstm5.org/tech-tutorials/pic32-tutorials/pic32mx220-tutorials/pwm http://www.mikroe.com/chapters/view/54/chapter-6-output-compare-module/#ch6.4
还有引用手册中的相关部分。
其中一个链接指出,要播放音频,必须使用计时器中断。这些应该怎么用呢?是否有必要使用例如正弦函数来计算波形的值,然后将其与定时器中断结合起来以定义每个中断标志后的占空比?
最终结果将是一个响应按钮按下并播放声音的程序。如果需要低通滤波器,也将实现该滤波器。
最佳答案
如果您使用 PWM 来模拟 DAC 并输出任意音频(对于给定频率的简单而肮脏的音调,您不需要这种复杂性),您需要获取音频样本 (PCM) 并将它们分别转换进入各自的工作周期。
合理的音频始于 8KHz (POTS) 的采样率。因此,对于每个(每 1/8000 秒)样本,您都需要更改占空比。并且您希望这些变化是有规律的,因为不规则性会导致声音失真。因此,您可以对定时器进行编程,以 8KHz 速率生成中断,并在 ISR 中根据新的音频样本值更改占空比(此 ISR 必须从内存中读取样本,除非它们形成简单的模式并且可以在飞)。
当您以 8KHz 的速率更改占空比时,您会生成频率为 4KHz 的周期波。这很好听。在模拟电路中对其进行良好过滤而不影响您想听到的声音可能不是一件容易的事情(尖锐的 LPF 滤波器很棘手/昂贵,廉价的滤波器很差)。相反,您可以将采样率提高到扬声器可以产生的两倍以上(或人耳可以听到的频率),或者至少远高于您想要产生的最大频率(在后一种情况下,廉价的模拟滤波器可以帮助消除不需要的周期波对您想听到的声音没有太大影响,您在这里不需要太多的清晰度)。
请注意,如果采样率高于音频文件的采样率,您将需要合适的上采样器/采样率转换器。另请记住,提高采样率会提高 CPU 利用率(ISR 每秒调用更多次,加上采样率转换,除非您的音频已预先转换)和功耗。
[我之前曾在我的 PC 扬声器上做过此操作,但现在由于 BIOS 和芯片组使用的 SMM/SMI 而被毁了。]
关于c - 使用 PIC32 微 Controller 上的扬声器生成 PWM 信号音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33853714/
本文实例讲述了Android开发之关闭和打开Speaker(扬声器)的方法。分享给大家供大家参考,具体如下: ?
是否可以在Delphi Code中控制(启用/禁用)扬声器图标。 是否有注册表项? 非常感谢... 最佳答案 尽管可以通过更改未记录的注册表值来“隐藏”图标,但用户可以在tray icon选项中再次取
我正在尝试从麦克风获取音频并通过连接到辅助设备的扬声器进行流式传输我使用了此代码,但它在录音机的初始化中不起作用但我真正的问题是“这是正确的方法还是有更好的方法”以及如何解决初始化音频的问题 publ
此问题之前已在此站点上被问过和回答过两次,但该代码似乎根本不适用于现代手机。我正在使用 Android 4.2 和 Android 4.3,但似乎都不起作用。 我在通话期间通过媒体播放器播放 MP3,
我想知道如何开发应用程序/服务器。我的安卓手机会在我说话时录制我的声音,并将其发送到 PC,然后使用 PC 的扬声器播放。 我想我需要一个在计算机上运行的媒体服务器来接收我的声音,然后使用手机上已有的
背景 我需要在软电话应用程序中显示连接的耳机列表(麦克风和耳机组合)。为了进行测试,我有以下设备: 捷波朗 PRO 9470 缤特力 BT300M 罗技 G430 游戏耳机麦克风 用户应该能够从 Co
如标题,我想知道如何获得我的 voip 应用程序的可用输出声音路径列表,或重现默认的 IOS 效果。此时我可以在用户调用电话时启用/禁用扬声器,但如果用户连接了蓝牙耳机,我希望用户可以选择使用哪条路由
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我使用了以下代码,它希望通过系统扬声器发出声音。代码确实听起来但通过声卡(桌面扬声器/耳机)。 我认为可以直接使用系统蜂鸣器发出声音,因为在设备管理器中它会显示相应的驱动程序。有没有解决这个问题的方法
我正在尝试使用nodejs(带 Electron )播放警告声音,即使音量调低或连接了耳机,也应始终在系统默认设备(扬声器)上以最大音量播放警告声音。 到目前为止,我使用 naudiodon播放声音,
如标题所示,如何将来电中的音频静音?我对任何类型的解决方案都感兴趣,使用 SDK、NDK 中的 API,甚至修改 AOSP 内核源代码并重新编译它们,可能会公开一个新接口(interface)。 最佳
我正在尝试开发一个应用程序来记录双方(麦克风和扬声器)的通话。我已经看到有一个应用程序 vrecorder 为 android 1.6 提供这个 vrecorder。 现在我想为 android 2.
在我正在使用的应用中,我们目前支持 Chromecast,但我们有兴趣添加对 Sonos 扬声器的转换支持,就像在 Play Music 中所做的那样。 当使用 MediaRouter 列出可用路线时
有没有办法在 java 中获取设备(扬声器、耳机)的 GUID?我正在尝试修改注册表中的特定值,例如我需要这个键名 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wind
我正在运行 Debian Sid,我想知道我的 USB 扬声器在系统中的什么位置。例如:当我插入笔式驱动器时,dmesg 会显示它的位置(sda、sdb 等)。但是当我插入 USB 扬声器时,它没有显
我在使用 Galaxy S5 时遇到了一个奇怪的设备特定问题。我正在使用 SIP (Linphone) 从 Galaxy S5 调用另一台设备,当我启用扬声器时,该设备开始使用其主麦克风作为降噪麦克风
我想在iPad上专门检测一下有没有耳机 例如 - 我可以使用 AVFoundation 检测 iOS 设备是否有 Tourch,所以有什么方法可以检测耳机的可用性。 最佳答案 1) 如果你想检查设备上
如何在 linux 中使用 PC 扬声器进行 c/c++ 编程?我可以控制哔声的时间和频率吗? 最佳答案 取自 here : #include #include #include int mai
我正在尝试使用 C# 和 NAudio API 记录扬声器输出以检测任何播放音乐的音量和 BPM。 问题是,我不知道该怎么做:/ 我有来自 http://opensebj.blogspot.de/20
想要的功能: 它类似于 iPhone 原生手机应用程序。当有蓝牙/耳机连接到 iPhone 时,扬声器按钮(通常只有扬声器/电话切换)将显示所有可用的音频输出设备。默认使用蓝牙。用户可以选择另一个设备
我是一名优秀的程序员,十分优秀!