問題タブ [microchip]
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 - Cプログラムされた写真で変数を連結する方法は?
hitechCで16f84apicをプログラミングして、hd44780lcdを駆動します。これまでのところ、lcdを初期化して、個々の文字と文字列をlcdに書き込むことができます。今、私はこのようなことをする必要があります:
var = 250;
lcd_write_string
("MyVarには値があります:" + var);
したがって、液晶ディスプレイには「MyVarの値:250」と表示されます。
まず、変数と文字列をどのように連結する必要がありますか?次に、変数varには8ビットの2進数(10進数で0〜255)が含まれています。var=23の場合; 8ビットの数値を2に分割して、ASCIIで2と3を表し、lcdで表示する必要があります。これどうやってするの?2桁の数値をすべて分割して液晶ディスプレイに表示するには、基数10の変換またはifツリーを実行する必要があるようです。これを回避する簡単な方法はありますか?
ありがとう!
assembly - PIC マイクロコントローラのアセンブリ言語を学ぶのに最適なリソースは何ですか?
PIC マイクロコントローラーのアセンブリ言語を十分に理解する必要があるプロジェクトに取り掛かります。私は C/C++ に精通しているので、ほとんどのコーディング方法を知っています。すでに PIC の多くのプロジェクトを行っているので、アーキテクチャは理解していますが、プログラミングはすべて「C」で行っています。
すべてのアセンブリ コマンドの意味と、PIC マイクロコントローラーのかなり単純なタスク (LED の点滅、基本的な数学など) の実行方法を説明している良い本または Web サイトはありますか?
編集: この投稿の主な目的は、アセンブリを学習するためのリソースを要求することであり、PIC での C とアセンブリのメリットや、PIC が使用するのに「良い」マイクロコントローラーであるかどうかについて議論することではありません。違いがある場合は、PIC18 マイクロコントローラーを使用しています。
ide - MPLAB にコメント付きの HEX ファイルをインポートさせたり、コマンドラインで指定した HEX ファイルをインポートさせるにはどうすればよいですか?
私は、オブジェクト ファイルを Intel 32 ビット HEX 形式、別名 INHX32 で生成する CCS c コンパイラを使用しています。このコンパイラには、これらのファイルにコメントを入れるディレクティブがあります。コメント行はファイルの先頭にあり、次のようにセミコロンで始まります。
このディレクティブを使用したいと思います。コメントは、後で hex ファイルを MPLAB にインポートする人にとって非常に役立つからです。ただし、MPLAB はコメント付きのファイルをインポートしません。しようとすると、「ファイル形式が無効です。情報がありません」というエラーが表示されます。
これらのコメント行は元の Intel 仕様の一部ではありませんが、他の一部のコンパイラや開発ツールはそれらを受け入れます。MPLAB にそうさせる方法はありますか?
これらの行を取り除き、結果のファイルを MPLAB に渡すスクリプトを書くこともできますが、私が知る限り、MPLAB はコマンドライン経由でファイルをインポートすることはできません。
c - 使用する I/O ピンを示すマクロ
HiTech PICC32 を使用して、PIC32MX のファームウェアを作成しています。私が回避したい問題の 1 つは、ほとんどのピンに複数の名前 (たとえば、AN0 = RB0 = CN2 = PGED1) があるため、AN0 が既に使用されていることに気付かずに、私または他の誰かが誤って RB0 を使用する可能性があることです。(これは、アナログ/デジタル ピンを誤って構成すると、過剰な電流が流れ、必須の煙が放出される可能性があるため、実際には壊滅的な事態になる可能性があります。)
使用されているすべてのピンを包括的に文書化するだけでなく、コーディングのレベルでこの問題を回避する簡単な方法があるかどうか疑問に思っていました. 人々 (主に私自身) が使用できるマクロが必要です。たとえばCLAIM_PIN(58)
、2 回実行すると警告またはエラーが発生します。
(私はこれを絶対に望んでいません。唯一の可能な解決策が恐ろしすぎるか、維持できない場合、私はそれを忘れて、涙を流したり、自分自身に火をつけたりするという評判を築きます。この質問も見ましたマクロを生成するマクロについて、それを除外します。)
明確にする必要があります。コードは複数のコンパイル単位で記述されています (少なくとも、これがこのフレーズの意味だと思います)。A2D コード用の .h/.c ファイル、同様に SPI 用、および特定の I/O ポートのみを使用するさまざまなペリフェラル用のファイルがあります。スペースは実際には問題ではありません。私のコードでは PIC32MX に十分なスペースを残しています。また、別の __DEBUG フラグを使用して、最終的な使用のためにピン チェック コードを削除することもできます。
embedded - MPLAB ウォッチ ウィンドウで構造を表示する
MPLAB ウォッチ ウィンドウで構造体を表示したいのですが、[シンボルの追加] ドロップダウン メニューから構造体を選択すると、[サポートされていない構造体] というメッセージが表示されます。マイクロチップのフォーラムで答えを探していたのですが、サイトがダウンしているようだったので、このコミュニティを試してみようと思いました. 構造が「サポートされていない」のはなぜですか? どうすればサポートを受けることができますか? これが私が見ようとしている構造です。その mchip の TCP/IP スタックから。
よろしくお願いします。ブレント
c - 以前に受信した UART 値を表示する
これは、C に詳しい人なら誰でも簡単に答えられるはずです。変数 (マイクロコントローラーの UART (RS-232) の受信レジスター) の以前の値を LCD に表示したいと考えています。これは私の現在の実装であり、正常に動作します。しかし、割り込みルーチンに費やす時間を減らす方法があるかどうか知りたいです。現在、ペリフェラルは、UART フィードで新しい文字を 1 つ受信するとすぐに割り込みルーチンにジャンプするように構成されています。提案は誰ですか?
pointers - 循環バッファポインタの不規則性
これは、この質問のフォローアップです。以前に受信したUART値を表示します。
マイクロコントローラに循環バッファを実装した後、ポインタに問題があるようです。
RS-232で送信:ADE1234
受信(バッファ= 8):E24AE2 / E2AE24(2つの間を反転)受信(バッファ= 16):D234E1(Aはシンクロバイトであるためスキップされます)
受信(RX_BufSize = 32):DE1223 / DEE123 / DE1234 / DE12E1(ランダムに反転)
期待される受信:DE1234
初期化
LCDに表示されるデバッグ値
受信割り込み
ソースからの関数
Detect_Cmd_RXDは、1/256秒ごとに呼び出されます。その間、UART受信バッファで少なくとも7つの値が送信されます。
書き込みプロセスが非常に高速で、読み取りポインターに追いつく可能性はありますか?Detect_Cmd_RXDをより頻繁に呼び出す以外に、この問題を解決するにはどうすればよいですか?
.net - .Net のデータ型と Motorola PLC のデータ型の違いは?
motorola PLC のすべてのデータ型のリストを取得するのを手伝ってくれる人はいますか。
ありがとう、
氏族長
assembly - PIC 16F684 マイクロコントローラの割り込み処理
ほんの数週間前に大学でマイクロプロセッサのクラスを終えたばかりで、そこではアセンブリのみでプログラミングしました。割り込みについてかなりの量(IMHO)を学びました。
ここに私の質問があります: 私は 16F684 用の HiTech コンパイラを使用して C でプログラミングしています。割り込みについて説明しているデータシート セクション ( PIC 16F684 データシートセクション 12.4) では、プログラムが割り込みベクトル 0x0004 に移動すると書かれています。マイクロプロセッサ クラスのアセンブリを使用して、そのアドレスを指す .org ステートメントをセットアップし、必要なアセンブリを以下に記述して、割り込みが発生したときにそこにジャンプして実行するだけです。アセンブリでそれを理解することはできますが、CI でプログラムする場合、プログラムの一部がメモリ内のどこに配置されるかを制御できるとは思えないため、問題が発生します。C の割り込みでコマンドを配置する方法がわかりません。
明確にする必要がある場合はお知らせください。