問題タブ [mplab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - printf が C32 コンパイラで動作しない
PIC18 のように PIC32 で printf が機能しないのはなぜですか?
たとえば、このコードは PIC18 では正常に動作しますが、PIC32 では動作しません。
C32 コンパイラでは出力メッセージがありません。何が見逃されましたか?
pic - タイマーレジスタ名の初期値設定
XC8 MPlab に PIC16F690 を搭載したタイマーがあり、正常に動作しています。
初期値を変更したい。レジスタに値を設定する方法が見つからなかったため、その値から開始します。
そのレジスタにデータを入力するための構文を探しています。
c - for ループがインクリメントしていない
私は今日このコードクラスに取り組んでおり、何度も経験したことを保証します. 何らかの理由で、ブレークポイントを設定して「channelsel」の値を決定するたびに、「0」しか得られません。1、2、3、または 4 を得ることはありません (私の MAXCHANNELS は 5 です)。
私が使用しているのは、P18F45K22 マイクロコントローラーと mplab c18 です。
次のコードをご覧ください。よろしくお願いします。
mplab - PIC32 が数時間後に応答しなくなる
別の会社が開発したPIC32MX340F512ボードがあります。ボードにはDS1338 RTCCと24LC32A eepromがあり、I2Cバスにディスプレイユニットがあります。このバスにはTSL2561 I2C光センサーが含まれており、光をポーリングするコードをcで書きました。光センサーが一定のレベルに達すると、時間と日付、光センサーの値を SD カードに保存します。これはすべて正常に機能しますが、トンネルの一方の端の入射光を監視する必要があるトンネル内に光を当てずにシステムを離れると、どれだけの量の光を当ててもシステムが応答しなくなり、電源を切るとすべてが正常に機能し始めます。私は 1 人の開発チームで、何ヶ月も問題を見つけようとしてきました。システムがハングしないようにウォッチドッグ タイマーを有効にしましたが、問題は解決しませんでした。次に、光測定を有効にするプッシュボタンを含めることでセンサーに問題があるかどうかを調べることにしましたが、それでも4〜5時間経過しても、PICは入力ピンの変化を検出することさえできません。ハードウェアのリセットが進行中のすべてを上書きするという印象の下で、リセットボタンを含めました。また、最初の数時間は正常に機能し、PICはリセットを含む何にも応答していないようです. ファームウェアには何も問題はないと確信していましたが、I2C のディスプレイ ユニット (pic16f1933 と lcd) がメイン ユニットと電力を共有しているため、これらすべてが起こっていることもわかりました。さまざまなメッセージが絶えず交互に表示されるため、影響を受けているようです 何が問題なのか (ハードウェア/ファームウェアまたは私のセンサー) を知っている人はいますか? 別途購入したDC24V電源を使用しています。コードに SLEEP モードを実装していませんが、PIC はディープ スリープ状態になっているようです。Nb 私たちは他の多くのプロジェクトで同じボードを使用していますが、そのような問題に遭遇したことはありません。前もって感謝します。
c - PIC24H の高速 UART 割り込みによる FreeRTOS エラー
私はすでにFreeRTOS
いくつかの組み込みプロジェクトに数年間使用しており、今までは本当に完璧に機能していました。FreeRTOS
現在、への移植で高速割り込みを使用することに関連する難しい問題に直面してPIC24H
います。この問題を解決するために皆さんが私を助けてくれることを願っています。前もって感謝します
簡単にテストできるように、小さなデモ プロジェクトを作成しました。
2 つのタスク:
タスクの実装:
上記の 2 つのタスクを実行するには、one Timer
& oneUART
を使用してそれらにセマフォを与えます。
私のタイマーは 100us ごとに中断し、UART は 230400 bps のボーレート速度で動作します。
数秒または数分実行した後、プログラムはクラッシュし、プログラムは Traps にジャンプします。
_AddressError
また
_StackError
この問題がどのように発生するかわかりません。長い調査とテストの後、プログラムが割り込みサービス ルーチン (ISR) で実行中および実行中であるときに問題が発生すると考えました。SAVE_CONTEXT()
&RESTORE_CONTEXT()
関数がいくつか必要なようです。しかしPIC24ポートにはそのような人はいません。
この問題についてアドバイスをお願いします
皆さん、ありがとうございました !
私はすでに自分の問題を見つけていると思います。この問題は、PIC24H が割り込みサービス ルーチンに出入りするときに発生します。ここでは、これらは UART RX、TX、タイマー割り込みです。
現在、私は次のように ISR を使用していません。
無効属性((割り込み, auto_psv))
代わりに、アセンブリ コードを使用して自分でメカニズムを作成しました。
__U1RXInterrupt: ; CPU レジスタをスタックにプッシュする
UART1_RxISRHandler は私の ISR の実装です。TX、タイマー割り込みでも同じことを行います。
その結果、私のプログラムはよりスムーズに実行され、1 時間長くなります (プログラムがクラッシュするまでの時間は 1 ~ 5 分だけです)。しかし、最後に、1〜2時間実行した後でもクラッシュします。つまり、私のアプローチは正しいのですが、それでも何か問題があります。上記のコードで何かが足りないかもしれません。
この状況の理想があれば教えてください。
ありがとう
c - PIC18F27J53 用 USB ドライバの使用
PIC18F27J53 を使用して Nintendo Entertainment System コントローラからの出力をデコードし、それを USB 互換の HID ジョイスティックとして使用しようとしています。
出力を 1 秒間に 60 回読み取り、各ボタンのステータスを 8 ビットの符号なし char の 1 ビットとして格納することに成功しました。PIC と NES コントローラの両方に USB の 5V と Gnd を使用しています。RB1 経由でラッチ信号を送信し、RB2 経由でクロックを送信し、RB0 経由でデータを読み込みます。
http://www.mit.edu/~tarvizo/nes-controller.html
http://ww1.microchip.com/downloads/en/DeviceDoc/39964B.pdf
ここで私が助けを必要としています: USB データラインとのインターフェース方法を考え出すことです。Microchip USB C ライブラリをダウンロードしましたが、どこから始めればよいかわかりません。C18 コンパイラを使用して MPLAB X IDE でプログラミングしています。
mplab - mplab ipe で全体像を見るには?
Linux で MPLABX IPE 1.95 を使用しています。何らかの理由で、プログラマーはメイン ウィンドウのサイズを変更できないようにすることにしました。
そのため、メモリ ビューを正しく表示することはできません。メモリ ビューが開いていないと、出力ウィンドウの下部も見えません。
ウィンドウを適切なサイズにするコツはありますか? そうでなければ、開発者に 640x480 より大きいモニターを提供してもらえないでしょうか?
ステータスが重要ではないことを願っています