turnOffPWM()

概要

turnOffPWM()は、指定したタイマのPWM出力を停止します。詳細は、analogWrite()の説明を参考にしてください。

PWM出力の停止は、タイマ/カウンタ制御レジスタを操作することで実現します。

ソースコード

turnOffPWM()は、hardware/arduino/avr/cores/arduino/wiring_digital.c に定義されています。以下に全ソースコードを示します。実際には#if によりさまざまなチップに対応しています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
static void turnOffPWM(uint8_t timer)
{
    switch (timer)
    {
        case TIMER1A:   cbi(TCCR1A, COM1A1);    break;
        case TIMER1B:   cbi(TCCR1A, COM1B1);    break;
        case  TIMER0A:  cbi(TCCR0A, COM0A1);    break;
        case  TIMER0B:  cbi(TCCR0A, COM0B1);    break;
        case  TIMER2A:  cbi(TCCR2A, COM2A1);    break;
        case  TIMER2B:  cbi(TCCR2A, COM2B1);    break;
    }
}

入力はtimerでuint8_t型の変数です。タイマの値に応じて、タイマ/カウンタ制御レジスタ(TCCRnx)の比較出力選択ビットを操作して、出力を停止します。

cbi()は、第1引数で指定したアドレスの内容の第2引数ビットを0に設定するマクロです。

バージョン

Arduino AVR Boards 1.8.6

最終更新日

March 21, 2023

inserted by FC2 system