問題タブ [pic18]

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.

0 投票する
1 に答える
1225 参照

embedded - 64Mhz クロックでの PIC18f45k22 シリアル フレーミング エラー

pic18f45k22 eusart ペリフェラルを介してシリアルを送信しようとしています。クロックが 16Mhz で動作している場合、メッセージは期待どおりに正確に送信されますが、PLL をオンに設定すると (発振器が 64Mhz で動作するように)、フレーミング エラーが発生します。

新しいクロック周波数に合わせて SPBRG レジスタを変更し、ボーレート ジェネレータを 16 ビット モードと 8 ビット モードの両方に変更しようとしましたが、うまくいきませんでした。

現在のコード:

事前に感謝します、Huggzorx

0 投票する
1 に答える
551 参照

infrared - PIC18F で IR 信号を受信する方法

IR 送信機 LED から信号を受信する必要があります。マイクロコントローラのプログラミング方法がわかりません。私はいくつかのコンセプト、それを行う方法を探しています。A/D 変換を使用する必要がありますか? 送信機と受信機を同期させる方法は?今後のデータはどのような構造になりますか? 送信機をプログラミングしていたときに、0 (バイナリ 0) に 600us、1 (バイナリ 1) に 1200us を想定したとしましょう。PIC18F マイクロコントローラで赤外線送信を受信する一般的な手順は?

0 投票する
1 に答える
526 参照

c - PIC18ポート間で分割された場合のデータの読み取り/書き込み

設計上の制限により、PIC18F4550の3つの異なるポートに分割されたメモリコントローラーのアドレスラインがあります。マッピング:

これに単一の変数ADDRESSとしてアクセスしたいので、ユニオンを使用してアクセスしようとしましたが、次のような「構文エラー」が発生します。

どうすればこれを行うことができますか?

0 投票する
2 に答える
1150 参照

c - pic 18F4550: local variable problem,

I'm using the pic18F4550 with microchip v8.63 and with the C 18 compiler. I'm using a LDR that retrieve the value of the led (not on my picdem board) (red, green and blue) these values are stored in a variable after each conversion. Afther that when I press the button S2, I come into the method ISR: this part works.

But now: I try to compare the variable red, green and blue in the if's: but I think that it not happen, he just go to my 'else' (led RB3 on my picdem board burns).

0 投票する
1 に答える
686 参照

audio - .wav ファイルのデータを pic18F4550 のフラッシュ メモリに入れる

ハードウェア プログラミングは初めてです。マイクロチップ バージョン 8.63 の C コンパイラを使用して pic18F4550 を使用しています。私の質問は: pic18F4550 のフラッシュ メモリに .wav ファイル (バイナリ データ) を書き込むためのサンプル コードはありますか?

0 投票する
2 に答える
2483 参照

microcontroller - マイクロチップC18の通常の割り込みレイテンシとコンテキスト節約時間はどれくらいですか?

Microchip C18コンパイラを使用していますが、割り込みが発生すると、ISRコードの実行が開始されるまでにかなり長い遅延が発生します。

実験として、これは私の主な機能です:

割り込みハンドラーとして、いくつかの例からコピーしたこのコードを使用しています(なぜこのように行われたのかわかりません)。

SPI経由でバイトを受信して​​いますが、バイトを受信した直後にメインループが停止します。次に、ISRコードの実行が開始される前に、16.5 µsの遅延が続きます。これは165命令サイクルです。

割り込みタイミング 画像を拡大

割り込みに関連するコンテキストの保存がいくつかあり、優先度の低い割り込みではさらに悪化することを私は知っています。IPENを無効にし、優先度の高いベクトルのみを使用しています。165の命令は、コンテキストを保存するための通常の期間ですか?

0 投票する
5 に答える
2661 参照

c - マイクロチップC18では、なぜNOPを挿入するとはるかに大きなコードが発生するのですか?

ISRにいくつかのコードがあります。コードは完全を期すために提供されており、質問はコメントアウトされた__asm_ブロックについてのみです。

__asm_ブロックがない場合、これは82個の命令にコンパイルされます。__asm_ブロックを使用すると、結果は107命令の長さになります。なぜ大きな違いがあるのですか?

Cコードは次のとおりです。

NOPなし:

NOPの場合:

これが部分的な差分のスクリーンショットです(クリックして拡大): 差分

0 投票する
1 に答える
1670 参照

assembly - マシンコードへのアセンブリ命令

MOVFF 0x10, 0x15マシンコードに変換しようとしています。マイクロコントローラは Microchip PIC 18F1220 です。リファレンスマニュアルには次のように書かれています。

エンコーディング:
1 番目の単語: 1100 ffff ffff ffffs
2 番目の単語:1111 ffff ffff ffffd

解決策は次のとおりです。

しかし、私が得ている解決策は

正しい答えを得る方法を教えてください。

ありがとうございました

0 投票する
2 に答える
3993 参照

linker - アクセス バンクに変数を配置する方法 - PIC 18 MPASM リンカー スクリプト

開始するリンカースクリプトがあります

割り込みサービス変数を ACCESS バンクに入れたいです。(私のプログラムは現時点では非常に小さいですが、将来的には...)。そう

その結果:

含まれているファイルを調べると、そうであると思います。それか、私は拡張モードで作業しており、「gpre」はそうです。#IFDEF を使用して確認できます。これを試しました。その結果、「gpre」ではなく「accessram」を使用しようとしていました。

インクルード ファイルから次の行をコピーして、アクセス バンクを明示的に定義しようとすると、次のようになります。

これにより、エラーが発生します

これは私を混乱させました。アセンブラー/リンカーのドキュメントによると、RAM オプションを指定して SECTION を使用します。ここで、RAM は以前に ACCESSBANK、SHAREBANK、または DATABANK を使用して宣言されています。それはうまくいくはずです。

ありがとう - リチャード

0 投票する
1 に答える
2276 参照

assembly - pic18で割り込みサービスルーチンを実行する方法

実際には、このコーディングは人数カウンターと 7 セグメントの表示用です。しかし、問題はこのプログラムを実行するときです。機能しませんでした。どこに問題があるのか​​ わかりません。私はそれを正しくやったと思う..