Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
turnOffPWM()

turnOffPWM()

概要

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

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

ソースコード

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

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 1.8.3



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2016 garretlab all rights reserved.
inserted by FC2 system