ASMのPICプログラミングの初心者として、新しい値を設定する前にレジスタがクリアされている理由を理解できません。実際の実行中のプログラムでは、これは行われず、すべて正常に動作します。なぜ新しい値を設定する前にレジスタクリアが行われるのですか
例はCRLF
CRLF PORTB ; Init PORTB by clearing output data latches
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0xCF ; Value used to initialize data direction
MOVWF TRISB ; Set RB<3:0> as inputs
; RB<5-4> as outputs
; RB <7-6> as inputs
例でCRLF
BSF STATUS, RP0 ; Select Bank 1
MOVLW 0xCF ; Value used to initialize data direction
MOVWF TRISB ; Set RB<3:0> as inputs
; RB<5-4> as outputs
; RB <7-6> as inputs
せずに両方の部分は、なぜクリアするので、細かい動作しますか?
最初の例には、「新しい値を設定する前にクリアされたレジスタ」のインスタンスが含まれていません.PORTBとTRISBは完全に別個のレジスタです。 2番目の例の問題は、2つの出力ピンの初期状態が決して指定されなかったことです。物理的な結果(モータのようなもの)で何かに接続されていると、起動時にコードが何をするのか分かりません。 – jasonharper
@jasonharper これをよく理解すれば、CRLF PORTBはTRISBがPORTBのプロパティを変更する間にラッチのデータをクリアしますか? – Decapod