例題4.5 MOTOR3
モータを正転→ブレーキ→正転(回転速度が遅くなります)させます. |
;MOTOR3.SRC yas@e-sy .CPU 300HA ;---------シンボルの定義---------- P1DR .EQU H'FFFFC2 ;ポート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 INIT: MOV.L #H'FFF10,ER7 ;スタックポインタ MOV.B #H'FF,R0L ;ポート1を MOV.B R0L,@H'FFFFC0 ;出力用ポートに設定する MOV.B #B'11000011,R0L ;GRB0コンペアマッチ MOV.B R0L,@TCR0 ;カウンタクリア MOV.W #H'0000,R0 ;立ち上げタイミングデータを MOV.W R0,@GRA0 ;GRA0に書き込む MOV.W #H'3000,R0 ;立下げタイミングデータを MOV.W R0,@GRB0 ;GRB0に書き込む MOV.B #B'10000001,R0L ;TMDRに"10000001" MOV.B R0L,@TMDR ;CH0のみPWMモードに設定する MOV.B #B'11100001,R0L ;TSTRに書き込み MOV.B R0L,@TSTR ;CH0のカウントを始める BSET #0,@P1DR ;下の行とセットで BCLR #1,@P1DR ;モータを正回転に設定 JSR @TIME20 ;TIME20にとぶ JSR @TIME20 ;TIME20にとぶ BSET #1,@P1DR ;モータをブレーキに設定 JSR @TIME20 ;サブルーチンTIME20にとぶ JSR @TIME20 ;サブルーチンTIME20にとぶ MOV.W R0,@GRA0 ;GRA0に書き込む BCLR #1,@P1DR ;モータを正回転に設定 TIME21: SUB.L #1,ER1 ;H'1ずつ減算 BNE TIME21 ;ゼロになるまでTIME20を繰り返す RTS ;元のルーチンに戻る
.END |
課題 4.5の説明
課題: 2つのモータを動作させて下さい.時間がある人はモータに色々な動きを付けてください. |