菜鸟请教关于out8/in8()输出接收声卡的信号。XTANG和各位大侠请进。

大家好,我看有的贴子里说用out8()能让声卡发出声音。我想问一下几个问题():
(1)我能够用out8()让声卡输出一个一连串的数字,比如说输出一串像正弦波的数据,然后在耳机接口用两根线连到示波器上,显示波形吗?,如果这个可以,那么就是说用in8(),然后用两根线连到mic接口也可以接收到这些信号,对吗?
(2)out8(0x43, 182)和in(0x61),这个0x43和0x61是怎么得来的,这两个是声卡的什么地址啊?这是固定的,还是不同的声卡不一样?这个是怎么得来的呢?
(3)声卡有两条通道,那是不是说能够通过out8()来单独控制一条通道呢,也就是说我可以让两个耳机出不同的声音,对不?这个是不是通过控制上面的地址来实现的呢?
(4)如果qnx下没有我的声卡的驱动,按道理说out8()是直接写声卡的地址的,那么用out8也是可以让声卡输出信号的对不?我的PC上有一块没有驱动的VT1708S 的声卡。。。
因为我并不是想要输出一个声音,我只是想用声卡的AD和DA的功能,我想用跟声音传输线一段连电脑的speaker然后一端连到mic,我要用一台电脑上的speaker做出来的模拟信号,然后用另一台电脑来采集,做一个模拟系统,不知道用out8和in8()做行不行?
呵呵,说了这么长不知道说清楚没有?希望得到大家的回复,不胜感激!!


谢谢!!

:confused:

纯理论来说,你说的是可以的。你要做的,其实就是声卡驱动。(从别的程序那儿得到数据,并传输出去)但我的理解,声卡芯片不是光in8/out8那么简单的,有很多时序上的考虑。在数据传递前,需要初始化好采样频率什么的,才能开始传数据。数据,也必须按一定的时间到达。

我觉得在英文论坛里有人建议与其直接与硬件打交道,不如直接使用QNX提供的声卡驱动呢。(比如你要通过串口传数据,你也是用串口驱动,而不是自己去控制串口芯片,是吧)

想像把你要传的正弦波数据直接封装到一个Wave文件里,直接喂给声卡就行了。声卡驱动自己会正确地按照Wave规定的时序,把数据传递出去的。(另一边再“录音“成wave文件就好了)在文档里应该有个 wave.c 和 waverec.c 文件的源码教你怎么操作声卡的。

哦,但是现在的问题是qnx好像不支持我的声卡,而且我找了一下市面上能买到的声卡用的芯片好像都不在qnx的support list 里面,现在大多都用CMI8738,VIA VT1723,哪里能买到一个被支持的声卡呢?或者是在哪里有这些声卡的驱动呢?郁闷。。