例題4.3 MOTOR1
モータが回転します. |
;******************************** ;* モータ回転プログラム * ;******************************** ; .CPU 300HA ;今回は,前回までのPWM用に加えて ;モータドライバ制御用にポート1を使用します. 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 ;ポート1を出力に設定しています. ;PWMのCH0のクリアタイミングを設定しています. MOV.B #H'FF,R0L ;ポート1を * MOV.B R0L,@H'FFFFC0 ;出力用ポートに設定する * MOV.B #B'11000011,R0L ;GRB0コンペアマッチ MOV.B R0L,@TCR0 ;カウンタクリア ;初期設定はPWM1プログラムと同じです. ; MOV.W R0,@GRA0 ;それをGRA0に書き込む MOV.W @GRB0_DW,R0 ;立下げのタイミングデータを読み込む MOV.W R0,@GRB0 ;それをGRB0に書き込む MOV.B R0L,@TMDR ;CH0のみPWMモードに設定する MOV.B #B'11100001,R0L ;TSTRに書き込み MOV.B R0L,@TSTR ;CH0のカウントを始める ;メイン部分です. ;前述の通り,ポート1の出力信号でモータドライバを制御しています. ;今回はモータを1つだけ使用しますので ;ポート1で使用するのはbit0とbit1となります. ;ここではそれぞれの出力を1,0と設定することにより ;モータを正回転に設定しています. ;モータドライバの制御信号については別表を参照して下さい. BCLR #1,@P1DR ;モーターを正回転に設定 * GRA0_UP: .DATA.W H'1800 ;GRA0,CH0波形立ち上げタイミングデータ GRB0_DW: .DATA.W H'3000 ;GRB0,CH0波形立ち下げタイミングデータ
.END |
課題 4.3の説明
課題:余裕のある人はモータを 2つ回してみましょう.
|