PIC 28:TIMER 2 の動作実験


TIMER 2 の動作実験

 TIMER 1の実験をしていました、その後TIMER 2も実験しましたがタイマーとしての作動は殆ど同じでした。16Bitの細かい設定は出来ませんがプリ・ポストスケラーを利用すると合計として16Bitになり、この辺は図を見ると分かります。

[T2 BLOCK DIAGRAM]

 設定の[T2CON]を指定するとTIMER 1のプログラムとほとんど同じ作動をします。単なるLEDの点滅など簡単な動作は置き換えが出来ます。
 次のプログラムは[TIMER 1から2に変更]した物で、前のものを一部変更(赤文字)しただけで同じ動作をしました。

begin
	call	IOPORT		;
	movlw	B'01111111'	;
	movwf	T2CON		;TIMER2 CONTROL REGISTER
b2
	btfss	PIR1,TMR2IF	;check flag
	goto	$-1
	bcf	PIR1,TMR2IF		;clear flag
	movlw	0x08		;LED position
	xorwf	PORTB,F		;on-off
	goto	b2			;loop


[T2 PWM BLOCK DIAGRAM]

TIMER 2のPWM動作

 PWM(Pulse Width Modulation)は良く使うので、これも調べておき、簡単な実験をしておきます。

 今回もLEDの点滅で動作しているかを確認します。サンプルとしてはあまり良くありませんが・・・!基板は[以前の物(写真右側)]を利用しています。

[PWM 動作]

 PWM動作をさせるには設定がたくさんあって分かり難いです、実験したサンプルを見て参考にして下さい。
 結果は左の図(PWM OUTPUT)のような信号が得られます。つまり間隔はPR2で、バルス幅はCCPR1Lを設定するとPWM信号が出来、CCP1端子に出力として出て来ます。
 CCPR1Lを変更するとそれによってパルス幅が変更され、モータの回転や電球の明るさなどをコントロールするのに良く使われます。

[ここで使った図は"Microchip Technology Inc"のマニアル(PIC16F818/819Data Sheet)から引用しました。詳しくは同社のsiteから!]

 このPWM動作はタイマ/カウンタの応用になります、そちらの知識を先に覚えないと良く分からないかも知れません。
 作動させるにはコンフィグの設定(CCP1=RB3とした)とかI/Oの設定(RB3を出力)等が条件になっています。従って、その辺を予めプログラムしておかないと作動しません。

 ハード的には16F819のHピンRB3に1KΩの抵抗を通して白色のLEDを付けてみました(従来の実験基板の再利用です)。
 PWMが一度設定されると連続的に出力され、止めるにはCCP1CONのbit3-0をクリヤします。またT2CONのbit2をクリヤしてTIMER2をShut-offさせると節電出来ます。

 以下のプログラムはI/O設定後のメインプログラムです。

;--------------------------------------------
	movlw	B'00000101'	;2=Timer2 on 1=pre *4
	movwf	T2CON		;TIMER2 CONTROL REGISTER
	banksel	PR2
	movlw	B'01000000'	;DATA=0x40
	movwf	PR2		;92h set of Period 
	banksel	CCPR1L
	movlw	B'00000010'	;DATA=0x02
	movwf	CCPR1L		;15h set of Duty cycle
	movlw	B'00001100'	;PWM mode ON
	movwf	CCP1CON		;17h
b2
	call	WA_100M		;LED ON-OFF 
	rlf	CCPR1L,F	
	goto	b2
;--------------------------------------------
 [b2]部分はLEDが「暗く点灯してから順に明るくなるまで」を繰り返すプログラムです(100mSecのタイマを入れているので、カクンカクンと少しぎこち無さもありますが……)。
 LEDはかなりDUTY CYCLEが狭くても薄く見え、コントロールしても明るさの変化が少ないのが欠点です、逆にいえば感度が高いともいえます。

 T2CON・PR2(要BANK切り替え)・CCPR1L・CCP1CONの設定が最低必要です。

2007/MAY/22


[もどる]もどる  [MAIN MENU

inserted by FC2 system