【发布时间】:2011-05-02 16:46:40
【问题描述】:
更新 2
我想制作一个可以在我的 pic 18f4550 上播放声音(可以说是红色、绿色和蓝色)的程序,有一个扬声器连接到 picdem,该部分工作正常,我用微芯片版本 6.83 编写了以下程序使用 C 编译器。
当我说红色时,我需要检索 .wav 文件的位值(这有一个位模式)。 我的正确问题是,如何获取 .wav 文件的位值。
void main (void)
{
TRISD = 0x00; // PORTD als uitgang
TRISB = 0b00110000; // RB4 en RB5 als ingang
TRISA = 0x00; // RA output
RCONbits.IPEN = 0; // interrupts
INTCONbits.GIE = 1;
INTCONbits.RBIE = 1;
while(1)
{
_asm sleep _endasm
}
}
#pragma interrupt ISR
void ISR (void)
{
int red[] = {bit values off sound red???};
int blue[] = {bit values off sound green???};
int green[] = {bit values off sound blue???};
if (INTCONbits.RBIF==1)
{
if(PORTBbits.RB5==0) // S3 pressed?
{
int i = 0;
int b;
do {
LATAbits.LATA2 = rood[i];
LATDbits.LATD1 ^= 1;
b = 0;
//do-while voor de frequentie (1500 is de freq)
do {
b++;
}while(b <= 2000);
i++;
}while(rood[i] <= 50);
//LATDbits.LATD1 ^= 1; // D2 togglen
}
}
INTCONbits.RBIF = 0;
}
【问题讨论】:
-
不,你的问题一点都不清楚。所以你想播放预先录制的单词?您需要找到一些方法来存储波形数据。
-
不,我只想发音为红色、绿色或蓝色。但红色必须是位值,其他两种颜色相同。
-
@user:是的,所以最大的问题是:如何让 PIC 播放预先录制的音频波形?
-
在这个链接上查看这个程序。这会将“文本”转换为他相等的位值。但我必须在他的相等位值中有'color => red'。 nickciske.com/tools/binary.php
-
@user:我真的不明白你要解释什么。你是说你想得到一个由 1 和 0 组成的数组,它们代表 ASCII 中的位,例如“红色”?
标签: c microcontroller pic microchip