例題4.2 PWM2
PWM2課題4.2の書き込みを行い,2本のPWM信号の出力をオシロスコープで確認します.PWM信号を2本出力します. |
;******************************************* ;* 2本のPWMを生成するプログラム * ;******************************************* ;行の末尾にアクタリスク(*)があるところが前回から ;追加,変更された行です. .CPU 300HA ;---------シンボルの定義---------- ;CH1用のTCR,GRA,GRB追加されています. TSNC .EQU H'FFFF61 ;タイマシンクロレジスタ TMDR .EQU H'FFFF62 ;タイマモードレジスタ TCR0 .EQU H'FFFF64 ;CH0タイマコントロールレジスタ GRA0 .EQU H'FFFF6A ;CH0ジェネラルレジスタA GRB0 .EQU H'FFFF6C ;CH0ジェネラルレジスタB TCR1 .EQU H'FFFF6E ;CH1タイマコントロールレジスタ * GRA1 .EQU H'FFFF74 ;CH1ジェネラルレジスタA * GRB1 .EQU H'FFFF76 ;CH1ジェネラルレジスタB * ;PWMのCH0,CH1をクリアするタイミングを設定しています. ;両方ともカウンタがGRBになったときにクリアされます. MOV.B #B'11000011,R0L ;GRB0コンペアマッチ MOV.B R0L,@TCR0 ;カウンタをクリア MOV.B #B'11000011,R0L ;CH0に同期してCH1も同様に * MOV.B R0L,@(___) ;カウンタをクリア * ;前回も使用したCH0に加えてCH1の立ち上げ,立ち下げタイミングを ;設定してます. ;また,下4行ではPWM端子0番と1番をPWMモードに設定し, ;CH0とCH1のタイマカウントを開始しています MOV.W R0,@GRA0 ;読み込んだデータをGRA0に書き込む MOV.W @GRB0_DW,R0 ;立下げデータ領域のデータを読み込む MOV.W R0,@GRB0 ;読み込んだデータをGRB0に書き込む MOV.W @GRA1_UP,R0 ;立ち上げデータ領域のデータを読み込む * MOV.W R0,@GRA1 ;読み込んだデータをGRA1に書き込む * MOV.W @GRB1_DW,R0 ;立下げデータ領域のデータを読み込む * MOV.W (__),@(____) ;読み込んだデータをGRB1に書き込む * MOV.B R0L,@TMDR ;CH0とCH1をPWMモードに設定する * MOV.B #B'(8bit),R0L ;TSTRに(______)を書き込む * MOV.B R0L,@TSTR ;CH0とCH1のカウントを始める * PWM: BRA PWM ;PWMにジャンプする ;PWMのCH0,CH1用データの数値設定をしています. GRA0_UP: .DATA.W H'1800 ;GRA0,CH0波形立ち上げタイミングデータ GRB0_DW: .DATA.W H'3000 ;GRB0,CH0波形立ち下げタイミングデータ GRA1_UP: .DATA.W H'2300 ;GRA1,CH1波形立ち上げタイミングデータ * GRB1_DW: .DATA.W H'3000 ;GRB1,CH1波形立ち下げタイミングデータ *
.END
|
課題 4.2の説明
課題:今のプログラムを 3本のPWMパルスの生成をするプログラムになおして下さい. |