SOGO論壇
標題:
89S51 C語言 程式有問題
[列印本頁]
作者:
grass0423
時間:
2015-4-29 17:17:18
標題:
89S51 C語言 程式有問題
本帖最後由 grass0423 於 2015-4-30 09:54 編輯
各位大哥,可否幫我看一下這是89s51,C語言 有關音效的片段程式碼
其中聲音共四段,有三段沒問題,但是就 SND_FAIL 一直有問題
SND_FAIL 在最後發聲宣告程式中
就case SND_FAIL:這段程式一直編不過,語法和其他三段一樣其他三段都沒問題
就這段一直出現
2014-11-20.C(339): error C202: 'SND_FF': undefined identifier
各位大大可以幫忙一下嗎??
#define SND_RANDOM 1 // 隨機
#define SND_SUCCESS 2 // 成功
#define SND_FAIL 3 // 失敗 (沒成功 再補錯)
#define SND_NORMAL 4 // 正常
unsigned char code tone1[1][5] = {
{57, 51, 45, 43, 38} };
unsigned char code tone2[1][1] = {
{30} };
unsigned char code tone3[1][3] = { // SND_FAIL
{115, 153, 153} };
unsigned char code tone4[1][19] = { // success
{77, 77, 57, 57, 45, 45, 38, 38, 38, 38, 45, 45, 45, 38, 38, 38, 38, 38, 38} };
//=======發出 聲音===============
void playSound(int x) { // 宣告 發出 聲音(區域名稱 X)
int idx, idy, idz; // 可能是聲音原始碼
switch(x) { // 開關(X)
case SND_RANDOM: // 案件 (snd音效格式檔 隨機)
for(idx = 0; idx < 1; idx++) {
for(idy = 0; idy < 1; idy++) {
for(idz = 0; idz < 50; idz++) {
SPK = 0; // (蜂音器 = 按)
delay8us(tone2[idx][idy]);
SPK = 1; // (蜂音器 = 沒按)
delay8us(tone2[idx][idy]);
} } }
break; // 跳出迴圈
case SND_SUCCESS: // 案件 (snd音效格式檔 成功)
for(idx = 0; idx < 1; idx++) {
for(idy = 0; idy < 19; idy++) {
for(idz = 0; idz < 50; idz++) {
SPK = 0; // (蜂音器 = 按)
delay8us(tone4[idx][idy]);
SPK = 1; // (蜂音器 = 沒按)
delay8us(tone4[idx][idy]);
} } }
break;
case SND_FAIL: //音效 正常
for(idx = 0; idx < 1; idx++) {
for(idy = 0; idy < 3; idy++) {
for(idz = 0; idz < 50; idz++) {
SPK = 0; // (蜂音器 = 按)
delay8us(tone3[idx][idy]);
SPK = 1; // (蜂音器 = 沒按)
delay8us(tone3[idx][idy]);
} } }
break; // 跳出迴圈
}}
作者:
a0932881
時間:
2015-4-29 23:37:16
本帖最後由 a0932881 於 2015-4-29 23:41 編輯
你SND_FAIL 是 tone3?
unsigned char code tone3[1][3] = { // SND_FAIL
{115, 115, 115} };
但你下面 case SND_FAIL:
用tone1?
delay8us(tone1[idx][idy]);
作者:
grass0423
時間:
2015-4-30 09:56:03
#define SND_FAIL 3 // 失敗 (沒成功 再補錯)
unsigned char code tone3[1][3] = { // SND_FAIL
{115, 153, 153} };
case SND_FAIL: //音效 正常
for(idx = 0; idx < 1; idx++) {
for(idy = 0; idy < 3; idy++) {
for(idz = 0; idz < 50; idz++) {
SPK = 0; // (蜂音器 = 按)
delay8us(tone3[idx][idy]);
SPK = 1; // (蜂音器 = 沒按)
delay8us(tone3[idx][idy]);
} } }
break; // 跳出迴圈
都修改過但是一樣 2014-11-20.C(255): error C202: 'SND_FAIL': undefined identifier
作者:
乂羽人乂
時間:
2015-6-17 16:23:55
大大
我用程式幫你跑了一下
加了include 89X51以及define SPK的定義
整個程式只有說少了delay8us副程式
test.c(29): warning C206: 'delay8us': missing function-prototype
這樣我就有個問題要問你了,請問你有把delay8us定義出來嗎?
如何寫的?
以上兩個問題
而且我有點錯亂
SND_FAIL他應該為音效錯誤的時候吧!!
另外SND_FAIL 3 應該有過才對吧
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM