プロが教えるわが家の防犯対策術!

ポケコンにはまっている高校生です。

最近C言語でBASICでいうBEEP命令をC言語でも出来ないかと考えています。
ゲームに使ったり、BASICのBEEP命令では出来ない和音とかも出来るようにしようと考えています。

そこで、簡単なプログラムを作って、音が鳴るかをテストしてみたのですが、
圧電スピーカーから音が鳴ってくれません。

機種は SHARP G850V
作ったプログラムはこのようなものです。


void wait(int);     /* プロトタイプ宣言 */
main()
{
  int w=0;
  fopen("pio:", "w+") /*ポケコンの11ピンを8ビット制御モードに。のはず・・・*/
  while(1){       /*ループ開始*/
     pioput(4);    /*11ピンの7ピンを1(high)に*/
     wait(1000);
     pioput(0);    /*8ビット出力をすぺて0(low)に*/
     wait(1000);
  }
}

void wait(x){       /*時間つぶし(周波数変更用)*/
int y;
for(y=0; y < x*10; y++);
}


圧電ブザーを11ピンの3ピン(GND)と7ピン(BASICでBEEPを使うときここにつなぐと音が出るのでこのピンにしてみた)
につないで実行してみたのですが、
音はならず、耳を近づけるとかすかにノイズのような音が聞こえます。
wait関数での時間をつぶす長さも100~100000くらいで試してみましたが、聞こえるのはノイズばかりです。

情報が足りなかったりしたら言ってください。

ポケコンやプログラミングに詳しい方
回答お願いします。

A 回答 (2件)

SHARP G850V はまったくわからないのですがネットで調べた範囲で


fopen("pio:", "w+")のコロンは要らないのかもしれません
fopen("pio", "w+")としているサイトを見かけました
http://www.k2.dion.ne.jp/~nagai/Content_103.htm

それとpioput(4);
4が7番ピンというのは間違いありませんか
4番ピンから11番ピンで8ビットなら7番ピンは8になりそうな気がします
上記サイトの7セグメントの対応を見てもそう思います。
    • good
    • 0

ポケコンやプログラミングに詳しくないですが(^^;



wait(1000);
フツーはミリ秒だと思うので1秒に一回→1ヘルツ

wait(100);
でも10ヘルツで、これでは人間の可聴周波数以下なのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!