問題タブ [pic32]
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 - マイクロチップ RF 変調器の問題
1 組の MRF24J40 無線チップを使用して、1 つの PIC32 マイクロコントローラー ボードが RF 伝送を介して別のボードと通信できるようにしています。すべてのコードを正常にコンパイルできましたが、このコードに関連するエラーが発生し続けます。
基本的に、変数packetType
、などの値を変更できるように、地球上のすべてを試しました。宣言の直後に値を変更しようとしましたが、値ではなくビット長のようです。コード(マイクロチップのウェブサイトから直接)には、1 = this および 0 = that というコメントがありますが、これらの値を変更できる場所が見つかりませんでした。これらの MRF24J40 チップに詳しい方からの助けをいただければ幸いです。ありがとうございました。secEn
ackReq
tcp - 最大数 PIC32 スターター キットを使用した TCP/IP 通信でバイト転送が可能
PIC32
ホスト ソフトウェアへのイーサネット通信にスターター キットを使用しています。
ホスト S/W - サーバー、PIC32 - クライアント
SEND API 呼び出しごとに送信できる最大バイト数を知りたいです。
現在、130 バイトを送信しようとしましたが、ホストは 125 バイトしか受信できません。ホストがデータを送信する前に 125 バイト以上を送信しようとすると、送信 API が FIFO がいっぱいであるというエラーを返します。
しかし、ホストがデータを送信した場合、もう一度 125 バイトを送信できます。
私のアプリケーションでは、PIC32 からのデータへの送信のみが KB 単位で必要です。
ここにコードがあります -
どうすれば数を増やすことができますか。送信バイト数とPIC32
スターターキットの制限はありますか?
ssl - PIC32MZ 上で動作するイーサネット接続用の MPLAB X サンプル プロジェクト
MPLAB X IDE v2.05 と最新の Harmony v0.8 をダウンロードしてインストールしました。しかし、PIC32MZ EC スターター キットを使用してイーサネット接続をデモするサンプル プロジェクトが見つかりません。私の目標は SSL 接続を試すことですが、ゼロから始めたいと思っています。
ヒントはありますか?よろしく、 ジャン
c - 一部の PIC32 で PIC32 WDT リセットが機能しない
PIC32 リセット機能があります。
PIC32MX360F512L では動作しますが、PIC32MX695F512L では動作しません。それは永遠に回転するだけです。誰かが理由を教えてくれますか、またはプロセッサをリセットする別の方法を提案できますか?
i2c - Microchip PIC - 柔軟なチップ間通信バス
柔軟なモジュール間バスの設計に取り組んでいます。
基本的に、各モジュールには PIC24 / PIC32 ファミリに搭載されている可能性が高いマイクロ コントローラが搭載されています。
バスは RJ11 コネクタを介して実行され、安価でなければなりません。
次の機能が必要です。 - マスター/スレーブ構成はなく、アービトレーション (CAN など) - 自動アドレス指定 - 反転可能な 2 本または 1 本のワイヤ - 正しいデータ レート。
最初のアイデアは、アドレス指定用に 3 番目のラインを備えた I2C バスを使用することでした。ただし、配線上の理由から、バスが交差しており、I2C マイクロチップ モジュールがピン上にハード ポジションを持っている場合、バスはラインの再割り当てをサポートする必要があります。
SPI は明らかに解決策ではありません。CAN モジュールは動作する可能性がありますが、8 バイトの制限とトランシーバーの必要性が非常に厄介です。LIN にはマスターが必要です。
PPSがピンを再割り当てできるように、ループバックモードでUARTモジュールを使用する方法を探しています。
もう 1 つの解決策は、バスをゼロから作成し、すべてをコーディングすることですが、時間がかかります。
経験と解決策はありますか?
ありがとう
c - PIC32 デリファレンス ポインターのコンパイラ バグの可能性
XC32 コンパイラを使用して PIC32MX795F512L のコードを作成しています。void* として関数に渡されたバッファーからデータを読み取る必要があります。データを符号なし 32 ビット整数の配列として読み取る必要があります。問題は、void* を uint32* にキャストし、その配列のインデックス 0 の値を読み取ろうとすると、プロセッサによって一般的なエラー ハンドラーが呼び出されますが、void* を uint8* にキャストしていくつかの処理を行う場合です。ビット操作で同じデータを取得すると、正常に動作します。
コードは次のようになります。
コードを変更する#if 0
と、期待どおりに機能し、ループ内で何度も表示および出力されます。#if 1
"Debug 0"
"Debug 1"
しかし、そのままにしておくと、"Debug 0" が 1 回だけ出力され、コードはループから飛び出して、コンパイラによって設定された cpu の一般的なエラー ハンドラにジャンプします。これは XC32 ompiler のバグですか、それとも不足していますか?
c - pic32 がブートローダーから飛び出すと、一般的な例外が発生します
PIC32MX795F512L 用のカスタム ブートローダとアプリケーションを含む mplabx プロジェクトがあります。開発中ずっと、次の行を使用して問題なくブートローダーからアプリケーションにジャンプしてきました。
whereAPPLICATION_RESET_ADDRESS
は、アプリケーションのリセット ハンドラのアドレスを含むマクロです。main
ブートローダーに最近変更を加えた後、その行を実行した後、アプリケーションの機能に入る前に、突然一般的な例外ハンドラーに入り始めました。奇妙なことは、その行にブレークポイントを設定し、ブレーク後に続行すると正常に動作することです。さらに、アプリケーションにジャンプする方法を次のように変更すると:
((void (*)(void))(APPLICATION_RESET_ADDRESS))();
問題なくアプリケーションにジャンプします。これは、によって生成されたアセンブリであるため、本当に混乱します。
およびによって生成されたアセンブリ:
は
したがって、どちらの方法も同じ数の命令を使用し、両方とも JALR を使用してジャンプします。2 つの唯一の違いは、ポインタをレジスタにロードする方法です。誰かアイデアはありますか?
c - int の const 配列へのポインタ
次のように、組み込みシステムにメニュー構造を作成しました。
初期のプロトタイピングのために次のようにインスタンス化されます。
後で機能/メニューポインタなどを初期化する目的で
GCC で問題なくコンパイルできますが、コードが実行されているとき (動的ではないメニュー システムが既に稼働している場合)、IDE (MPLABX) は MainMenu の内容を表示するのに苦労し、関数 DisplayMenuItems を実行しようとすると (以下のように)私はそれを介してステップすることはできません
構造体を定義してインスタンス化した方法に問題があることを誰かが見つけることができますか?
構造体を使用してアイテムを表示するには、次の関数を使用する予定です。
GCC は、私がここで想定されていないことを回避できるようにする可能性があるため、ヒントをいただければ幸いです。
どうもありがとう