問題タブ [pic]
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.
assembly - PICのEEPROMへの書き込み
ここにPICマイクロコントローラープログラマーはいますか?
pickit2とそれに付属の16F690チップを使用してPICマイクロコントローラーのプログラミングを学んでいます。現在、さまざまな施設を試してみています。MPLABでEEPROMvaklueを設定すれば、コードでEEPROMからバイトを正常に読み取ることができますが、PIC自体を使用して値を変更できないようです。単に何も起こらず、変更された値を読み戻さないので、常に元の値を取得します。これは、書き込みが機能していないことを意味しますか?
これはそのセクションの私のコードです、私は何かが欠けていますか?私は不必要な銀行の切り替えをたくさん行っていることを知っています。間違った銀行にいることが問題にならないように、それらのほとんどを追加しました。
usb - USBHIDプロトコルの質問
汎用HIDインターフェイスを使用してPIC18F2550にUSBを実装しています。入力と出力の両方に単一の64バイトメッセージを持つようにHIDプロファイル構成を設定しました。
今では基本的に機能しています。デバイスはウィンドウにOKを登録します。PCのプログラムで見つけることができ、データを送受信できます。ただし、問題はこれです。PCからPICへのメッセージは、EP0エンドポイントバッファのサイズに切り捨てられます。
デバッグを続ける前に、ここでUSBプロトコルについての理解を明確にし、正しく理解できたことを確認したいと思います。
EP0入力バッファが8バイトであると想定します。PC側が8バイトの制御パケットを送信することは私の理解です。後に続くデータのバイト単位の長さがあります。次に、8バイトのデータパケットのシーケンスを送信し、PIC側はそれぞれを確認する必要があります。
PC側は、デバイス記述子の最大パケットサイズフィールドを調べることで各パケットの大きさを認識し、それに応じてメッセージを複数のデータパケットに分割することを理解しています。
コードをもっと探す前に、これが基本的に正しいことを誰かが確認できますか?EP0バッファサイズが8バイトの場合、前述の構成フィールドのためにPCはこれを認識し、複数のデータパケットを送信する必要がありますか?
PICで受信バッファを64バイトにすると、ニーズに十分な64バイトのメッセージが表示されますが、小さなバッファで機能しない理由がわからないので、いつかはとにかくおそらくそれらが必要です。
アドバイスや情報は大歓迎です。
embedded - マイクロコントローラに搭載された ADC の最大物理レート (ナイキスト性能制限) の計算
さまざまな PIC マイクロコントローラーに搭載されている A/D の最大物理レート (ナイキスト性能限界) を評価しようとしています。
ただし、計算を行うには、データシートに明示的に記載されていないパラメーター、具体的には Tacq、Fosc、TAD、および除数パラメーターが必要です。
いくつかの仮定を立てて進めましたが、サニティ チェックを行うと役立ちます。最大物理レートの計算を正しく行っていますか?
説明のみを目的として、ADC を備えた最も単純な PIC10F220 を取り上げました。これは、Tacq、Fosc、TAD、および除数パラメータの解釈に特に焦点を当てるためのものであり、この非常に基本的なチップに実用的な機能を実装できることを示唆するものではありません。(これは、以下のコメントでのクリフォードのポイントです。)
計算:
そう:
次のサンプルの前にリアルタイムで実行される単純なロード/ストア/しきい値の 10 の命令を想定します (これは単なるスタブです。ポイントは残りの計算です)。
つまり、このシステムの (理論上の) パフォーマンス --- 仮想のリアルタイム処理コードを使用したチップの A/D --- は、28 kHz に帯域制限された信号用です。
これは、Tacq、Fosc、TAD、および除数パラメーターを取得し、それらを使用してこのチップの最大物理レートまたはナイキスト性能限界を取得する際のデータシートの正しい割り当て/解釈ですか?
ありがとう、
microcontroller - PICの質問..〜
私は現在、私の国の地元の大学の1つでソフトウェアエンジニアリングプログラムを実施しています。そして、私はソフトウェアとハードウェアに興味があります。だから私は自分でそれを学ぶことにしました。私の先輩の一人は、最初にPIC16または18から始めるように私に言いました。ここの誰かが関連するウェブサイトへのリンクを持っていますか?また、eBay以外のPICをプログラムするためのデバイスはどこで入手できますか?事前にthx。
assembly - PIC 16F877A 用に ASM を C に変換するツールはありますか?
ASM ファイルを C プログラムに変換したい。これに利用できるツールはありますか。私の意図は、PIC 16F877AプログラムのアセンブリプログラムをCプログラムに変換することです...
microcontroller - 8051 マイクロコントローラ キットの推奨事項は?
私は、マイクロコントローラーの開発を始めようとしているコンピューター サイエンスの 1 年生です。8051はダートとして一般的で、実社会での使用頻度が高いので使いたいです。
3 年生または 4 年生の間に、PIC マイクロコントローラ ベースの組み込み設計のクラスを受講する予定なので、今は PIC を取りたくありません。そうしないと、そのコースでかなり退屈してしまいます。
私が目にするほとんどの商用キットは、AVR または PIC シリーズのマイクロプロセッサ用です。まともな開発ツール、ドキュメンテーション、および初心者が夏に専念できる十分なアドオンを備えたものを探しているだけです。
8051 ファミリ キットの推奨事項はありますか? ありがとう!
embedded - PIC逆アセンブラが必要
PIC16F877Aのhexファイルを分解したい。良い逆アセンブラはありますか?分解後、再度コンパイルすることは可能ですか?私が世話をしなければならないことは何ですか?
microcontroller - マイクロコントローラからマイクロコントローラへの SPI 通信
私はいくつかの読書をしていて、マイクロコントローラーで動作する「マスター」SPIさえ取得しました。これが私の質問です。基本的に、マスターがスレーブへの書き込みを初期化したい場合、SSPBUFに書き込みます。スレーブが応答するものをどのように制御しますか? その場合、データシートはイベントの順序を明確にしていないようです。
IE マスターは 1 文字を SSPBUF に入れます。これにより、SPI モジュールがスレーブにデータを送信し始めます。シフト中に、スレーブはバイトを返します。
スレーブ側では、着信データがあることを伝える何かがあり、最初に SSPBUF に書き込み、次にデータを受け入れることができますか?
また
マスターが転送を開始する機会を得る前に、返送する最初の「戻り値」を SSPBUF に書き込む必要がありますか?
pic - マイクロチップ c18 コンパイラを使用して pic18f に大きなバッファを作成する
pic18f で Microchip C18 コンパイラを使用して、プログラム データ空間に 3000 バイトの「大きな」バッファを作成したいと考えています。
これを main() (スタック上) に入れた場合:
このエラーがあります:
グローバルに配置すると、次のエラーが発生します。
大きなバッファを作成するには? c18でpic18fの大きなバッファを管理する方法に関するチュートリアルはありますか?
microcontroller - Pic 16F913 との通信
ここに私の問題があります。PIC 16F913 のすべての通信回線が同じピン セットにあるようです。これは、通信を行うためだけに GPIO ピンを犠牲にする必要がないという点で便利ですが、私が抱えている問題はチップで SPI を使用している場合、RS232 に情報を送信するにはどうすればよいですか?
この問題が発生した理由は、SPI 経由で通信する CAN バス チップを購入したばかりで、RS232 でデータを表示したいので、メッセージを表示できるようにしたいからです。(私はまだCANについてあまり知らないので、これが理にかなっているのかどうかは誰にもわかりません).
これが私が見るオプションです。おそらく、他の誰かが私が見逃しているより良いアイデアを持っているかもしれません。
- どういうわけか、データを取得するたびに SPI と RS232 を切り替えるタイム スキームをセットアップします。
-- これは難しくないようで、うまくいくはずですが、メッセージを見逃したくない場合、RS232 への書き込み中にメッセージが書き込まれた場合、それを見逃す可能性はありますか?
2.. いつでも SPI を使用できますが、別の PIC 16F913 への 8 つの GPIO ラインを介して独自の通信バスを構築し、GPIO ラインのみを使用します。RS232 ラインは 2 番目の PIC で空いているので、単純に読み取ることができます。データを吐き出します。
-- これは実行可能ですが、2 つのチップとすべての GPIO ラインを無駄にしています。
もっと良い方法があるはずです。それともありますか?
どんな助けでも大歓迎です。
更新:明確にしたいのですが、明らかに1つの解決策は完全に異なるチップを使用することです(18Fをプログラムできれば、実際に私がやることになるかもしれません)が、最悪のシナリオに興味があります.私はリソースが限られており、いくつかの 913 しか持っていません。上記の方法がこのチップでそれを行う唯一の方法ですか、それともより良い方法がありますか?