ブザー付きマイクロコントローラーのcコードがあります。それは機能しますが、どのように機能するのだろうか。Wh.h/.cpp には次の関数があります。
void setBuzzer(tBool on)
{
if (TRUE == on)
IOCLR = BUZZER_PIN;
else
IOSET = BUZZER_PIN;
}
これにより、ブザーを有効または無効にすることができます。それが実際に何をするのか、BUZZER_PIN、IOCLR、IOSET とは何なのかわかりません。
BUZZER_PIN は、次のコードで 1 回だけ発生します。
void immediateIoInit(void)
{
tU8 initCommand[] = {0x12, 0x97, 0x80, 0x00, 0x40, 0x00, 0x14, 0x00, 0x00};
// 04 = LCD_RST# low
// 10 = BT_RST# low
//make all key signals as inputs
IODIR &= ~(KEYPIN_CENTER | KEYPIN_UP | KEYPIN_DOWN | KEYPIN_LEFT | KEYPIN_RIGHT);
IODIR |= BUZZER_PIN;
IOSET = BUZZER_PIN;
IODIR |= BACKLIGHT_PIN;
IOSET = BACKLIGHT_PIN;
BUZZER_PIN に設定した直後に、IOSET の値が変化しているので、私には奇妙に見えます。それで、それは何をすることができますか?
もう 1 つ質問があります。ブザーを使って何かできることはありますか? たとえば、ボリュームに変更しますか?もちろん、一時停止(time)とsetBuzzer(0)よりもsetBuzzer(1)で音の長さを調整できます。