最近在公司开发一个关于钢琴的PCBA项目,项目大概是这样的,完成各种功能的测试,准备去工厂量产的时候可以通过软件快速甄别硬件是否短路,断路等问题。
其中,甄别好坏的方法是通过比如按键,或者其它的操作然后响应音频信号的输出来甄别的,那到底原理是怎么样的呢?
音频信号定制为如果是0则输出1000hz,如果是1则输出3000hz。
音频信号是一个16进制数,比如0xfd----->1111 1101
那么它的输出应该是这样的,从左边最高位开始,输出3000hz ,3000hz ,3000hz, 3000hz , 3000hz , 3000hz , 1000hz , 3000hz .
如果要求改一下,从右边最低位到最高位输出也是可以的,这个具体可以通过示波器来测量相应的信号输出波形。
原理我们搞明白了,就这么简单,于是我们就可以用C语言位运算来实现这个操作,由于公司保密特权,我不方便公开我的项目的详细细节,这样,我只能写个模拟的C语言测试程序来模仿这个过程,好了,我们开始写代码: