• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MPLABのデバッガーでの基板ICのレジスタ読み…)

MPLABデバッガーで基板ICのレジスタ読み込み方法とは?

noname#230359の回答

  • ベストアンサー
noname#230359
noname#230359
回答No.1

MPLABでシミュレーションするとか I2C書き込むタイミングでトレースかけてブレークするとかじゃダメなの? PICにIOエクスパンダのレジスタを読み込むルーチンを予め入れておいて ブレークからの復帰番地でそちらへ飛ばすとか割り込みでジャンプすれば PICのレジスタに引っ張ってこれるのでMPLABで読めるようになるはずです。 また基板故障でよくある 1を出したつもりだけど0の電圧になってるとかは 出力レジスタの設定値と出力ポートを直接読んだ値を比較するように 最初からPICのプログラムを組めば良いだけだと思います。

noname#230358
質問者

お礼

tigers様 いつもありがとうございます。頂いたアドバイスを試してみます。ありがとうございました。

関連するQ&A

  • MPLABでPIC16F887のCONFIGについて

    助けてください!! MPLAB IDE V8.00でデバイスをPIC16F887に設定し、アセンブルすると 毎回「CONFIG」でエラーが出て先に進みません。 メッセージは⇒Error[126] E:\PIC\PROGRAME\***********\***********.ASM 3 : Argument out of range (not a valid config register address) っと出ます。 実際の「CONFIG」の設定は⇒__CONFIG _HS_OSC & _PWRTE_OFF & _MCLRE_OFF っとしております。 CONFIGを外すと問題なく成功します。 何故なのか教えて下さい。 ちなみに、MPLABの設定等は特にいじっておりません。 宜しくお願い致します。

  • MPLABにおけるsyntax errorについて

    MPLABを使って、PIC18f2550にプログラミングをしようと考えています。 MPLABの動作確認をしようと、非常に簡単なプログラムを打ちましたが、 「L:\mplab\source file\test.c:4:Error: syntax error」 なるエラーでビルド失敗します。 syntax error ってなんなのでしょうか。 全文を乗せると ----- Clean: Deleting intermediary and output files. Clean: Done. Executing: "C:\Program Files\Microchip\mplabc18\v3.43\bin\mcc18.exe" -p=18F2550 /i"C:\Program Files\Microchip\mplabc18\v3.43\h" "L:\mplab\source file\test.c" -fo="test.o" -D__DEBUG -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa- L:\mplab\source file\test.c:4:Error: syntax error Halting build on first failure as requested. ----- です。 また、Microdhip C18 Toolsuiteを使用しています。パスも設定しました。

  • PICで静電容量方式タッチセンサの使い方

    PIC初心者ですm(_ _)m MPLAB IDE v8.80で、C言語でプログラムして、 PICkit3を使ってPIC12F615に書き込んでいます。 PIC12F1822を使って、タッチセンサを作成してみたいのですが、 いろいろ調べたのですが、レジスタの設定等、検出手順など全く分かりません(T_T) よろしくお願いしますm(_ _)m

  • MPLAB v8.36 でビルドできない!!

    MPLAB v8.36 でビルドできない!! MPLAB v8.36 で、led.cというCのファイルを 作るところまで行ったのですが、F10押してビルドすると、 Build C:\1PIC\led for device 16F84A Using driver C:\Program Files\HI-TECH Software\PICC\PRO\9.65\bin\picc.exe Make: The target "C:\1PIC\led.p1" is out of date. Executing: "C:\Program Files\HI-TECH Software\PICC\PRO\9.65\bin\picc.exe" --pass1 C:\1PIC\led.c -q --chip=16F84A -IC:\1PIC -P --runtime=default,+clear,+init,-keep,+osccal,-download,-resetbits,+stackcall,+stackwarn,+clib --opt=default,+asm,9 --warn=0 -D__DEBUG=1 --double=24 --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" Error [141] C:\1PIC\led.c; 1.18 can't open include file "16f84a.h": No such file or directory ********** Build failed! ********** と出ます。 自分で調べて、原因はファイル名が間違っているか インクルードパスが通ってないとわかりましたが どのようにしたら解決できるかわかりません。 つい先日、アセンブラでやったときはできたんですが、 学校ではCでやることになったのでCでやってみましたが できませんでした・・・。 どなたか解る方、具体的な解決方法を教えてください! 調べたけど解らなかったんです・・・ 使用機器などは ●AKIープログラマー ver4 ●MPLAB IDE ver8.36(Hitech PICC Pro 9.65付属) ●MPLAB 8.36についてるHitech PICC Pro 9.65をCコンパイラとして使用 AKI-プログラマを使う前に、つまずいてしまった・・・ 一人で調べてもラチがあかない・・・ 幼稚な質問で恐縮ですが 初心者ということでそこは勘弁願います・・・

  • 32×16ドットマトリクスLED拡張表示ユニット

    光らせるためのプログラムがわからないです。 1から作るマトリクスled制御より難しいと聞いてやってみようと思いましたがわかりません。至急プログラムおねがいします 使うpicは16f1937でmplabを使いCでやってるのでコンパイラはhiteck-cを使っています

  • MPLABでビルドできない・・・

    PIC初心者です。 MPLABというソフトを使っています。 PIC16F886を使おうと思ってプログラムを組んだのですが、ビルドできません。 エラーは以下のようです。 Error [800] PWpack.as; 45. undefined symbol "DEBUGEN" Error [800] PWpack.as; 45. undefined symbol "LVPDIS" Error [800] PWpack.as; 45. undefined symbol "FCMDIS" Error [800] PWpack.as; 45. undefined symbol "IESODIS" Error [800] PWpack.as; 45. undefined symbol "BORDIS" Error [800] PWpack.as; 45. undefined symbol "DUNPROTECT" Error [800] PWpack.as; 45. undefined symbol "UNPROTECT" Error [800] PWpack.as; 45. undefined symbol "MCLREN" Error [800] PWpack.as; 45. undefined symbol "PWRTEN" Error [800] PWpack.as; 45. undefined symbol "WDTDIS" Error [800] PWpack.as; 45. undefined symbol "INTIO" Error [800] PWpack.as; 49. undefined symbol "BORV21" 最初にCONFIGしたものがすべてエラーになっているようです。。。 このプログラムは エレキジャックHP>サポートページ>エレキジャックNo.6 に載っている鉄道模型のコントローラーのプログラムを参考に作りました。 そこに載っているプログラムをダウンロードしてきてビルドしたのですが、やはり出来ません。 ということは、プログラム自身は間違っていないのです。 なので、MPLABの設定?が違うのではないかと考えたのですが、全く分かりません。 環境は以下の通りです ソフト:MPLAB IDE v8.73 コンパイラ:HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.82 PC:windows7 64bit HomePremium 回答お願いします。

  • MPLAB でPuroject Wizardでうまくいきません

    MPLAB(V7.10)でアッセンブラーソースプログラム作成、保存後、PurojectからPuroject Wizardを選び、PICのタイプPIC12F629を選択し、次の画面でActive Toolsuit 、 Toolsuite Contents 、 Location を表示のまま Next で次に進もうとすると、エラーメッセージ「One of more of your tool paths donot point to existing files. 」が出てしまい、次に進めません。 何か設定が間違っていつのでしょうか? 教えてください。 尚、 Active Toolsuit は Microchip MPASM Toolsuit Toolsuite Contents は MPASM Assembler Location は C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe となっています。

  • SPI通信制御付きの音声ICをI2Cで制御可能?

    SPI通信のRX端子搭載で、音声の再生や停止などを制御できる音声ICをATMELのAtmega88Pというマイコンで行おうと思っているのですが、Atmega88PにはSPI機能の端子が1つだけで、デバッガの接続のみに専念させたいと考えています。 一応、空いている端子があるので、プログラムで擬似的にSPI通信の作ってそれで制御することを考えているのですが、Atmega88PのI2C端子も空いているのですが、これをSPIの送信のみに特化したような使い方はできますでしょうか? 確か、I2CはACKのビットが入ってきて、単純に1バイトを8ビットで送信するという感じではダメだったような気がするのですが、可能でしょうか? どうぞ、ご教示頂きますよう宜しくお願い致します。

  • I/Oレジスタアドレスを関数に引数として渡すには?

    C言語について質問があるので投稿させていただきました。 現在Renesas製 RXマイコンにてポート制御のプログラムを作成しています。 そこで一点分らない点がありましたのでご教授いただければ幸いです。 現在I/Oポートレジスタの入出力設定を行っています。 レジスタ値を書き換えるだけであれば下記の通りかと思います。 #define PORTA (*(volatile unsigned char *)0x0008C00A) PORTA = 0x01; レジスタアドレスを引数として関数に渡し関数内でレジスタ値を書き換えるにはどうすれば よろしいでしょうか。 void main(void) { setPinMode(PORTA); PORTA.PODR.BIT.B0 = 0x01; while(1); } void setPinMode(uint32_t* portNumber) { *portNumber = 0x01; } としていますが上手くいきません。 型がおかしい? ポインタってものが分かってない? など色々考えてはみたのですが何分初心者なので解決に至っておりません。 よろしければご教授の程よろしくお願いいたします。

  • PIC・eepromとPIN設定について

    目をとめて頂き、ありがとうございます。 さっそくですが、PICのプログラムについてとPIN設定について解らないところがありましたので、質問させていただきます。 1)シリアル通信のプログラムです。 eeprom内蔵のPICを使っているのですが、eepromに書き込んだ後に(画面に)「無事に書きこみましたよ」的な表示をさせたいのですが、ちゃんと書き込まれたかどうかがわからなくて… アセンブリでやると、レジスタのフラグ(?)をみて判断しているっぽいのですが、生憎とアセンブリはさっぱり分かりません。 c言語でもわかる方法はないものでしょうか? 2)PIN設定です。 RA5(OSC1)-->外付けで振動子つけてます RA4(OSC2)-->RA5と同じです RA3(MCLR/VPP)-->リセットICつけてます RA2(I/O)-->input設定 RA1(I/O)-->input設定 RA0(I/O)-->output設定 という設定のPICで、RA0~2は普通にI/OとしてSET_TRISできるのですが、RA3~5をどうSETしたらいいのかが分かりません。 普通のI/Oとしては使わないけど、外付けで振動子とICがついているので普通にI/OでSETしていいのか… 以上2点ですが、わかる方がいらっしゃいましたらよろしくお願いします。