No.2
- 回答日時:
実はPICはアセンブラ専門でC言語もフリーの物しか使ったことがありません。
CCS社のCコンパイラが使ったことが無いので断言は出来ませんが一般のC言語としては問題ない書き方をしました。不安があるとすれば、intの値の範囲で十分に音階を制御できるかどうかですね。intで足りなければlongにする必要があります。
それとmain関数や圧電ブサーのポートをON/OFFの部分は書いてありませんので付け加えをお願いします。
No.1ベストアンサー
- 回答日時:
圧電ブザーは他励式だと仮定して書かせてもらいます。
音は、圧電ブザーのON/OFFで出すことが可能ですが、周波数(音階)は1秒間に何回ON/OFFを繰り返せるかで周波数が決まります。例えば、周波数800Hzは、1秒にONとOFFを1組として800組繰り返します。
ようは、ONとOFFの時間が可変長な関数を作ってやれば色々な周波数を出すことができます。
[参考関数]
void sound( int time, int count )
{
int loop;
// 残り時間だけループを繰り返す。
for( ; time>0 ; time-=(count*2) ) {
// 圧電ブザーをONにする。ON時間はcountで決まる。
for( loop=0 ; loop<count ; loop++ ) {
圧電ブサーのポートをONに。
}
// 圧電ブザーをOFFにする。OFF時間はcountで決まる。
for( loop=0 ; loop<count ; loop++ ) {
圧電ブサーのポートをOFFに。
}
}
}
[説明]
timeでなり続ける時間を指定します。
countでON/OFFの周期を指定します。大きな数字ほど周波数が低くなります。0は音が鳴りません。
C言語だとアセンブラほど高速にON/OFFを繰り返せないので、アセンブラに比べると出せる周波数は低めになるかと思います。いろんな値を入れて実際にどんな音するか試してみてください。
それとこのプログラムはCPUを占有しますので、音を鳴らしながら平行して処理をしたい場合は、タイマー割り込みでブザーをON/OFFする方式に変更しないと実用性が低いかもしれません。
この回答への補足
対応ありがとうございます。
この記述は、CCS社のCコンパイラーに対応しているのでしょうか?
PIC用に動かしたいのですが、上記の記述は音を鳴らすことが出来ますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 汎用ブザーについて詳しい方、教えてください 1 2022/11/17 12:02
- 日本語 日本語のアクセント 1 2022/05/12 13:26
- 英語 下記のスペルを確認するとき 発音しやすく伝わりやすい言葉はなんですか? ※(AppleのAとか) C 5 2023/08/23 21:08
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- iPad iPad Proにマイク付きイヤホンを繋いでも端末マイクになってしまう理由 2 2023/07/16 02:28
- タブレット 世のスマホやタブレットからイヤホンジャックが廃止されていくのはなぜですか?… 5 2023/08/04 15:05
- 楽器・演奏 楽譜のドイツ語読みは全楽器共通ではなかったの? 15 2022/05/07 13:52
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- 日本語 日本語の「-3の規則」 1 2022/05/12 13:14
- 作詞・作曲 或る曲の楽譜のコード進行の中に"F onA"なるものがありました。これはどんな和音ですか? 7 2023/05/22 00:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【H8マイコン】HEWで埋め込みア...
-
アセンブラで割り算
-
PICはアセンブラとC言語のどち...
-
PICのアセンブラからC言語へ変...
-
[C言語→アセンブリ言語]はどう...
-
アセンブラ(アセンブリ)の何か...
-
アセンブラからC言語に変換する...
-
アセンブラエディタ
-
データコピー
-
組み込み系C言語の学習法
-
Linuxについて。
-
x86系でリアル←→プロテクトモー...
-
素数を求めるプログラム(アセン...
-
SHの命令の意味について
-
Cとアセンブリ
-
MASMの機種依存についてお尋ね...
-
PIC16F84AのデバイスでC言語を...
-
RSA暗号化の処理時間
-
0xffffとは?
-
ものづくりに向いているプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
Windowsはオープンソースですか?
-
[C言語→アセンブリ言語]はどう...
-
実行ファイルからソースはみれる?
-
PICはアセンブラとC言語のどち...
-
void __cdeclなど_
-
アセンブラ言語がわかりません。
-
このアセンブラの意味を教えて...
-
エンディアンについて。
-
アセンブラのコマンドについて
-
PICのアセンブラからC言語へ変...
-
アセンブラで割り算
-
最初のアセンブラ
-
CASIOのポケコンZ-1GRのアセン...
-
SHの命令の意味について
-
PC-9801でマシン語を学習するに...
-
PC-9801 MS-DOSでの実行ファイ...
-
アセンブラのLA
-
masm32がうまく動きません。
おすすめ情報