山本ワールド
PIC18 TIMER1計算
タイマー1/3/5
PIC18F46K22ではTimer1/3/5が同様に使用できる。
PIC18F14K50ではTimer1/3が同様に使用できる。
カウントレジスタ:16bitアップカウント
PIC18F46K22はクロック源:FOSC/4及びFOSC及び外部クロックピンまたはCPUクロックとは独立した水晶振動子用の内臓クロック発振回路を選択可能
PIC18F14K50はクロック源:FOSC/4及び外部クロックピンまたはCPUクロックとは独立した水晶振動子用の内臓クロック発振回路を選択可能
CPUのクロックとして使用可能。またはCPUと独立した水晶振動子用の発振回路を内臓
カウント値がオーバーフローすると割り込み発生可能
プリスケーラ: 2 4 8
カウント値はTMR1L,TMR1Hレジスタに書き込むことにより設定
スリープモード時もカウント動作可能
カウント値を0~0xffff以外で周期動作させるにはオーバーフロー発生時にカウント値をソフトウェアで設定する必要がある。
OpenTimer1はTCON1とTGCON1の設定を行う。なおTimer1は拡張周辺機器なので割り込みを有効にするためにINTCONのPEIEを1にしなければならない。
PIC18F46K22にはゲート機能がある。ゲート機能とはクロックの入力を他のカウンタや外部信号により有効か無効かを制御できる機能である。
CCPモジュールによりカウント値と値が一致した場合にカウンタをクリアし割り込みを発生させることができる。この機能によりソフトウェアでカウンタ値を設定せずに自動的に機能の周期で割り込みを発生することができる。また値が一致した時に外部ピンにHまたはLまたは反転等を出力できる。反転を使用すればデューティ50%の方形波を出力できる。
CCPモジュールとの併用によりAD変換器の変換トリガとして使用できる。(使えるモジュールは限定されている)
PIC18F14K50ではTimer1/3が同様に使用できる。
カウントレジスタ:16bitアップカウント
PIC18F46K22はクロック源:FOSC/4及びFOSC及び外部クロックピンまたはCPUクロックとは独立した水晶振動子用の内臓クロック発振回路を選択可能
PIC18F14K50はクロック源:FOSC/4及び外部クロックピンまたはCPUクロックとは独立した水晶振動子用の内臓クロック発振回路を選択可能
CPUのクロックとして使用可能。またはCPUと独立した水晶振動子用の発振回路を内臓
カウント値がオーバーフローすると割り込み発生可能
プリスケーラ: 2 4 8
カウント値はTMR1L,TMR1Hレジスタに書き込むことにより設定
スリープモード時もカウント動作可能
カウント値を0~0xffff以外で周期動作させるにはオーバーフロー発生時にカウント値をソフトウェアで設定する必要がある。
OpenTimer1はTCON1とTGCON1の設定を行う。なおTimer1は拡張周辺機器なので割り込みを有効にするためにINTCONのPEIEを1にしなければならない。
PIC18F46K22にはゲート機能がある。ゲート機能とはクロックの入力を他のカウンタや外部信号により有効か無効かを制御できる機能である。
CCPモジュールによりカウント値と値が一致した場合にカウンタをクリアし割り込みを発生させることができる。この機能によりソフトウェアでカウンタ値を設定せずに自動的に機能の周期で割り込みを発生することができる。また値が一致した時に外部ピンにHまたはLまたは反転等を出力できる。反転を使用すればデューティ50%の方形波を出力できる。
CCPモジュールとの併用によりAD変換器の変換トリガとして使用できる。(使えるモジュールは限定されている)
クロックよりTMRxL,TMRxHレジスタの設定値の計算
JavascriptによりTMRxレジスタの値により任意の周波数で周期割り込みを発生させる場合の設定例を計算する
プリスケーラ(p) | 1 | 2 | 4 | 8 |
目標周波数 f=1/t |
||||
目標分周比 d=CLK/f |
||||
分周比(dp=d/p) | ||||
8bit/16bit | ||||
TMR計算式 | ||||
TMR1L | ||||
TMR1H | ||||
TMR1H:TMR1L | ||||
出力周波数 | ||||
誤差(%) |
タイマー設定例(入力条件よりXC8向けソースを表示)
条件入力
XC8 Cコンパイラ向けのサンプルソース
Copyright (C) 2012 山本ワールド All Rights Reserved.