「ATmega328でのタイマとPWMの使用方法」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
編集の要約なし
100行目: 100行目:
<center>
<center>
{| class="wikitable"
{| class="wikitable"
!colspan="10" | TCCR0A タイマ0設定レジスタ
! colspan="10" | TCCR0A タイマ0設定レジスタ
|-
|-
|  
|  
| colspan="2" | PWM出力方法(コンペアマッチA)<br>出力ピン : OCR0A
! colspan="2" | PWM出力方法(コンペアマッチA)<br>出力ピン : OCR0A
| colspan="2" | PWM出力方法(コンペアマッチB)<br>出力ピン : OCR0B
! colspan="2" | PWM出力方法(コンペアマッチB)<br>出力ピン : OCR0B
| 設定なし
! 設定なし
| 設定なし
! 設定なし
| colspan="3" | タイマのモード設定(一部)
! colspan="3" | タイマのモード設定(一部)
|-
|-
| ビット名
! ビット名
| 7
| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0 ||
| 6
| 5
| 4
| 3
| 2
| 1
| 0
|
|-
|-
| レジスタ名
! レジスタ名
| COM0A1
| COM0A1 || COM0A0 || COM0B1 || COM0B0 || - || - || WGM01 || WGM00 ||
| COM0A0
|-
| COM0B1
! 波形出力なし
| COM0B0
| 0 || 0 || 0 || 0 || - || - || 0 || 0 || 標準
|-
! コンペアマッチで出力が反転
| 0 || 1 || 0 || 1 || - || - || 1 || 0 || CTC
|-
! コンペアマッチでLow出力
| 1 || 0 || 1 || 0 || - || - || 0 || 1 || 位相基準PWM
|-
! コンペアマッチでHigh出力
| 1 || 1 || 1 || 1 || - || - || 1 || 1 || 高速PWM
|}
</center>
<br>
<center>
{| class="wikitable"
! colspan="9" | TCCR0B タイマ0設定レジスタ
|-
|
! colspan="2" | OC0RAおよびOCR0Bの強制変更
! 設定なし
! 設定なし
! タイマモード設定(一部)
! colspan="3" | クロック分周の設定
|-
! ビット名
| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0
|-
! レジスタ名
| FOC0A || FOC0B || - || - || WGM02 || CS02 || CS01 || CS00
|-
! 役割
| colspan="2" | 強制コンペアマッチ<br>(非PWMモードのみ)
| - || - || 下で説明する
| colspan="3" | クロック分周の選択
|}
</center>
<br>
<center>
{| class="wikitable"
! colspan="5" | WGMの役割 タイマモード設定
|-
! WGM02 !! WGM01 !! QGM00 !! 動作モード !! TOP
|-
| 0 || 0 || 0 || 標準 || 0xFF
|-
| 1 || 0 || 0 || 予約 || -
|-
| 0 || 1 || 0 || 位相基準PWM || 0xFF
|-
| 1 || 0 || 1 || 位相基準PWM || OCRnA(nは0または1)
|-
| 0 || 1 || 0 || CTC || OCRnA(nは0または1)
|-
| 1 || 1 || 0 || 予約 || -
|-
| 0 || 1 || 1 || 高速PWM || 0xFF
|-
| 1 || 1 || 1 || 高速PWM || OCRnA(nは0または1)
|}
</center>
<br>
<center>
{| class="wikitable"
! colspan="4" | クロック分周の設定
|-
! 設定 !! CS02 !! CS01 !! CS00
|-
! ビット名(TCCR0B)
| 2 || 1 || 0
|-
! 分周なし
| 0 || 0 || 1
|-
! 分周 1 / 8
| 0 || 1 || 0
|-
! 分周 1 / 64
| 0 || 1 || 1
|-
! 分周 1 / 256
| 1 || 0 || 0
|-
! 分周 1 / 1024
| 1 || 0 || 1
|-
! 外部クロック<br>T0を立ち下がりエッジで
| 1 || 1 || 0
|-
! 外部クロック<br>T0を立ち上がりエッジで
| 1 || 1 || 1
|}
</center>
<br><br>
 
== タイマ1のレジスタ設定 ==
タイマ1の設定レジスタであるTCCR1Aの設定を下表に示す。<br>
<center>
{| class="wikitable"
! colspan="9" | TCCR1A タイマ1設定レジスタ
|-
|
! colspan="2" | PWM出力方法<br>(コンペアマッチA)<br>出力ピン : OCR1A
! colspan="2" | PWM出力方法<br>(コンペアマッチB)<br>出力ピン : OCR1B
! 設定なし
! 設定なし
! colspan="2" | タイマのモード設定(一部)
|-
! ビット名
| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0
|-
! レジスタ名
| COM1A1 || COM1A0 || COM1B1 || COM1B0 || - || - || WGM11 || WGM10
|-
! 波形出力なし
| 0 || 0 || 0 || 0 || - || -
| rowspan="4" colspan="2" | タイマのモード設定<br>(下に記載)
|-
! コンペアマッチで出力が反転
| 0 || 1 || 0 || 1 || - || -
|-
! コンペアマッチでLow出力
| 1 || 0 || 1 || 0 || - || -
|-
! コンペアマッチでHigh出力
| 1 || 1 || 1 || 1 || - || -
|}
</center>
<br>
<center>
{| class="wikitable"
! colspan="9" | TCCR1B タイマ0設定レジスタ
|-
|
! colspan="2" | インプットキャプチャ
! 設定なし
! colspan="2" | タイマモード設定(一部)
! colspan="3" | クロック分周の設定
|-
! ビット名
| 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0
|-
! レジスタ名
| 1CNC1 || 1CES1 || - || WGM13 || WGM12 || CS12 || CS11 || CS10
|-
! 役割
| ノイズ除去器を有効にする<br>(4回同じ入力で1入力される)
| エッジ設定<br>0 : 立ち下がり<br>1 : 立ち上がり
| -
| -
| -
| colspan="2" | タイマモード設定<br>(下で説明する)
| WGM01
| colspan="3" | クロック分周の選択
| WGM00
|}
|
</center>
<br>
<center>
{| class="wikitable"
! colspan="6" | WGMの役割 タイマモード設定
|-
! WGM13 !! WGM12 !! WGM11 !! QGM10 !! 動作モード !! TOP
|-
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
|-
| 0 || 0 || 0 || 1 || 8bit位相標準PWM || 0x00FF
|-
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
|-
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
|-
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
|-
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
|-
|-
| 波形出力なし
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
| 0
| 0
| 0
| 0
| -
| -
| 0
| 0
| 標準
|-
|-
| コンペアマッチで出力が反転
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
| 0
| 1
| 0
| 1
| -
| -
| 1
| 0
| CTC
|-
|-
| コンペアマッチでLow出力
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
| 1
| 0
| 1
| 0
| -
| -
| 0
| 1
| 位相基準PWM
|-
|-
| コンペアマッチでHigh出力
| 0 || 0 || 0 || 0 || 標準 || 0xFFFF
| 1
| 1
| 1
| 1
| -
| -
| 1
| 1
| 高速PWM
|}
|}
</center>
</center>

案内メニュー