MOVF操作後の作業レジスタの値が間違っています

aLoHa

MOVF操作後にWレジスタで間違った値を取得することを解決するにはどうすればよいですか?

正常にビルドおよびプログラムするコードをデバッグしていますが、回路の一部として電源を入れたときに望ましい結果が得られず、デバッグ中に、MOVF操作後に作業レジスタに正しい値が含まれていないことに気付きました。

W-regにコピーされる値がデバッグ中に手動で書き込まれる場合、コードは正常に機能します。

次の画像は、私の問題を非常によく示していると思います。

ここに画像の説明を入力してください

1.ポート定義。

ここに画像の説明を入力してください

2. LEDportA値0x02は、W-regに移動されます。

ここに画像の説明を入力してください

3.操作後、W-regには0x02ではなく0x00が含まれます。

ここに画像の説明を入力してください

4. Final image shows that LEDportA is the same as LATA, as it is cleared after the "clrf LEDportA instruction.

I am totally bewildered as to what could be causing it and any insights or advice that anyone can provide will be very much appreciated.

Please note that the PIC MCU in use is the PIC16F1829.

Kozmotronik

使用しているPICモデルや残りのコードなどの十分な情報を提供していないため、私が見る限り、問題はバンクの選択が間違っていることが原因です。TempCレジスタはバンク0の0x70にあり、LATAレジスタはメモリの0x10Cバンク2にあります。したがって、LATAを読み取ろうとすると、実際には、bank0内の対応する0Cアドレスの場所が読み取られます。RAM内のレジスタから読み取りまたは書き込みを試みる前に、正しいバンクを切り替える必要があります。レジスタにアクセスする正しい方法があるコードスニペットを確認してください。プログラマーにとってより便利なBANKSELディレクティブを使用するか、BSR(Bank Select Register)にバンク値をロードすることにより、バンクに切り替えることができます。

UpdateDisplay:
        BANKSEL     LEDportA    ; Switch to LEDportA bank before any access
        MOVF        LEDportA, w
        andlw       0x0f
        BANKSEL     TempC       ; Switch to TempC bank before any access
        movwf       TempC
        bsf         TempC, 4
        rrf         TempC, F
        btfss       STATUS, C
        bcf         TempC, 3
        btfsc       TempC, 0
        ....

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

引数のないPytestの作業ディレクトリが間違っています

分類Dev

行列の最後の数値が間違っています

分類Dev

行列の最後の数値が間違っています

分類Dev

検索後のセルの値が間違っています

分類Dev

返されたイテレータの値が間違っています

分類Dev

STM32のLEDの点滅レジスタが間違っていますか?

分類Dev

テキスト比較の値が間違っています

分類Dev

opencvスカラーの値が間違っています

分類Dev

ポインタ割り当て後の構造体メンバーの値が間違っています

分類Dev

私のIPアドレスが間違っていますか?

分類Dev

タイムデルタ操作の結果が間違っています

分類Dev

vscodeでPythonコードとjupyter拡張機能を実行すると、現在の作業ディレクトリが間違っています

分類Dev

anglejsサービスの動作が間違っていますか?

分類Dev

32ビットプロセスで型キャストした後の値が間違っています

分類Dev

jsftpls操作のumlautsが間違っています

分類Dev

orderBy後のAngularjsの$ indexが間違っています

分類Dev

UISearchController後のUIViewControllerのサイズが間違っています

分類Dev

R を使用したデータフレームの列の値が間違っています

分類Dev

std :: vectorの最初の要素の値が間違っています

分類Dev

新しいスレッドに渡された構造体の値が間違っています

分類Dev

bashスクリプトのステータス値が間違っています

分類Dev

iOS8のUITableView:rowHeightの値が間違っています

分類Dev

Pythonの立方根の値が間違っています

分類Dev

Laravelのフォームの値が間違っています

分類Dev

AngularDateパイプの月の値が間違っています

分類Dev

`map`Kotlinの戻り値の型が間違っています

分類Dev

const char *のsizeofconst char *の値が間違っています

分類Dev

ListViewのSelectedIndexの値が間違っています

分類Dev

データベースのワードプレス画像のURLが間違っています

Related 関連記事

  1. 1

    引数のないPytestの作業ディレクトリが間違っています

  2. 2

    行列の最後の数値が間違っています

  3. 3

    行列の最後の数値が間違っています

  4. 4

    検索後のセルの値が間違っています

  5. 5

    返されたイテレータの値が間違っています

  6. 6

    STM32のLEDの点滅レジスタが間違っていますか?

  7. 7

    テキスト比較の値が間違っています

  8. 8

    opencvスカラーの値が間違っています

  9. 9

    ポインタ割り当て後の構造体メンバーの値が間違っています

  10. 10

    私のIPアドレスが間違っていますか?

  11. 11

    タイムデルタ操作の結果が間違っています

  12. 12

    vscodeでPythonコードとjupyter拡張機能を実行すると、現在の作業ディレクトリが間違っています

  13. 13

    anglejsサービスの動作が間違っていますか?

  14. 14

    32ビットプロセスで型キャストした後の値が間違っています

  15. 15

    jsftpls操作のumlautsが間違っています

  16. 16

    orderBy後のAngularjsの$ indexが間違っています

  17. 17

    UISearchController後のUIViewControllerのサイズが間違っています

  18. 18

    R を使用したデータフレームの列の値が間違っています

  19. 19

    std :: vectorの最初の要素の値が間違っています

  20. 20

    新しいスレッドに渡された構造体の値が間違っています

  21. 21

    bashスクリプトのステータス値が間違っています

  22. 22

    iOS8のUITableView:rowHeightの値が間違っています

  23. 23

    Pythonの立方根の値が間違っています

  24. 24

    Laravelのフォームの値が間違っています

  25. 25

    AngularDateパイプの月の値が間違っています

  26. 26

    `map`Kotlinの戻り値の型が間違っています

  27. 27

    const char *のsizeofconst char *の値が間違っています

  28. 28

    ListViewのSelectedIndexの値が間違っています

  29. 29

    データベースのワードプレス画像のURLが間違っています

ホットタグ

アーカイブ