- 9845. リセットによる初期状態への戻し方について [のぼらん] 2006/03/09 15:14
- みなさん、こんにちは。私は現在PIC16F873を使って、ロボットの製作に挑戦しています。まだスタートしたばかりですが1つなかなか解決できない問題が発生してしまったので、どうかお助け下さい。それは、リセットによる初期状態への復帰についてです。現在作っている回路は、スイッチボタン(RA1,RA2にプルアップして接続)を押すことで信号をHブリッジ回路に送りモーターの正転・逆転をさせるものです(信号線にはRC7,RC6,後々PWMの勉強もしたいのでRC1も使用)。そしてMCLRにスイッチをプルアップして接続しております。私が組んだプログラムでは、電源投入時にはモーターは回転しておらず、スイッチを押すと回転するはずなのですが、なぜか電源をPIC側、モーター側の両方に入れたとたん回転してしまいます。その状態でPICの電源をOFFにして再びONにすると、モーターの回転は止まっており、スイッチを押すと正常動作します。しかし、再び電源を両方ともOFFにした後で同じ操作をすると、また回転してしまいます。どのようにすれば、解決できるのかアドバイスをよろしくお願いいたします。一応プログラムリストを載せておきます。
LISTP=PIC16F873
INCLUDE"P16F873.INC"
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _LVP_OFF & _DEBUG_OFF
ORG0
START
BSFSTATUS,RP0
MOVLWH'07'
MOVWFADCON1
MOVLWH'01'
MOVWFTRISA
CLRFTRISB
CLRFTRISC
BCFSTATUS,RP0
MOVLWH'F0'
MOVWFPORTC
GOTOMAIN
MAIN
BTFSSPORTA,1
CALLMoter1
BTFSSPORTA,2
CALLMoter2
MOVLWH'F0'
MOVWFPORTC
GOTOSTART
Moter1
MOVLWH'82'
MOVWFPORTC
BTFSSPORTA,1
GOTOMoter1
RETURN
Moter2
MOVLWH'42'
MOVWFPORTC
BTFSSPORTA,2
GOTOMoter2
RETURN
END
- 9846. Re: リセットによる初期状態への戻し方について [初心者G] 2006/03/09 18:05
- とりあえずTRISAの設定とか見直して再確認しましょう。
これではRA0のみ入力?
>MOVLWH'01'
>MOVWFTRISA
それから、いろいろ試してるのかもしれませんけど、
GOTO START のところ GOTO MAINに替えたりループ範囲と内容を変えて
動作確認しながら機能アップしていけば良いと思います。