問題タブ [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.
bit-manipulation - データ型が完全な数値を保持できない場合は、10進数を16進数に変換します
これは、数週間前の私自身の質問とほぼ同じです。
データ型が完全な数値を保持できない場合は、16進数を10進数に変換します
今回はその逆です。私は(便利なヌル文字で終了した文字列の)番号を持っており、この番号を構成するバイトが必要です。ただし、私はマイクロコントローラーの32ビットアーキテクチャで作業しているため、32ビットを超える数であるため、atoiを使用する可能性はありません。
元の結果を取り戻すために、最初のリンクで提供されているアルゴリズムを逆にする方法について誰かが考えていますか?私の合同算術スキルは私を失敗させています。
簡単な例:155.207.231.135から0x [24] [23] [12] [66] [9F](角かっこでバイトを区切ります)
c++ - このアセンブリを c に変換するのを手伝ってください
私のコンパイラは、私が持っているアセンブリ ファイルでは動作しません。また、私の他のコンパイラは、私が持っている c ファイルでは動作しません。組み立てがわかりません。これを移動する必要がありますが、どこにもすぐには行きません。助けてくれる人はいますか?翻訳者がいないなんて信じられない。ファイルの冒頭は次のとおりです。
とにかく、デバイス定義が私のmain.cにあるので、最初の2行をほとんど除外できることがわかりました。2 つの #defines はまさにそれですが、最も簡単な方法 (私が思うに) は、_Z と _C のインスタンスを STATUS,2 と STATUS,0 に適宜置き換えることです。次の行 (GLOBAL) は、私が収集している単なる変数宣言です。LSB と MSB も値を割り当てることを除いて同じです。次のチャンクは、それらの名前 (AARGB0 など) を持つ整数の束を宣言するだけで、その後のチャンクは関数です。
私のコンパイラには #asm/#end asm ディレクティブがあるので、その関数を変換することさえ気にしません。
私はそれをすべて持っていると思います...ビルドして、コンパイラが STATUS が定義されていないことを叫ぶまで。そしてもちろんそうではありません。しかし、それは何ですか?ネットで STATUS レジスタが何か特別なものだと読んだのですが、実際にどのように機能するのかわかりません。
あなたが気づいていないなら、私はそれが本当に何を求めているのかさえわかりません. 私は血まみれのことを機能させたいだけです。
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ツリーを実行する必要があるようです。これを回避する簡単な方法はありますか?
ありがとう!
communication - 割り込み通信について
私たちはシンプルなアーキテクチャを持っています:
- メインチップ (arm9 ベース)
- PICコントローラー
PIC は、割り込みベースの I2C 通信プロトコルを介して ARM と通信し、データを転送します。割り込み内で、I2C 層 (バス) からデータを読み取るタスクに信号を送ります。
データが限られている場合、通常、データを読み取って上位層に送信するのにそれほど問題はありません。このデータが非常に大きい場合、割り込みは長時間拘束されます。
最初の質問は次のとおりです。
私は正しいですか?
私が正しい場合、どうすれば同じことを避けることができますか? ...または、別の解決策はありますか?
linker - PIC コードのアドレス範囲を指定する方法は?
PIC16 用に Claudiu Chiculitas の小さなブートローダーを使用したい (チップに合わせて変更しました) が、そのブートローダーはブートローダーの上書きを防ぐためにコードを移動しないため、ブートローダーが上書きされないように手動で確認する必要があります。--rom オプションを次のように使用しようとしました。
私が欲しいのは、コード メモリの最初の 4 ワードにはコードがありません。これは、ブートローダーへのジャンプがある場所であり、メモリの最後の 128 ワードにコードがないためです。実際のブートローダーがある場所だからです。--rom 私が使っているように、何もしません。HI-TECH PICC STD COMPILER (Microchip PICmicro) V9.60PL3 を使用しており、チップは pic16f876A です。
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 - PIC18 で C を使用したマルチスレッド
OS がないため、PIC18のプログラミング中に並列で実行されるスレッドをどのように作成しますか?
linux - µC プログラミングに進みたいのですが、どこから始めればよいかまったくわかりません。
MCUプログラミングに「移行」することについてかなり長い間考えてきましたが、問題は、マイクロコントローラーなどを使用したことがないことです。私が言われたように、AVR と PIC は愛好家の間で最も一般的なマイクロコントローラーであり、明らかにほとんどの人が私のような初心者に AVR を勧めています。愛好家コミュニティ。AVR や PIC などは、私にとってはあまり重要ではありませんが、Linux で優れたコンパイラを使用して C コードを記述でき、最終的には MCU に LCD スクリーンを追加できるようになることを望んでいます (基本的なASCII文字を出力するためだけに、おそらくあちこちに数ピクセルをモノクロで描画し、大きなものは何もありません)。複雑なもの、非常に高速なもの、大量のメモリは必要ありません。私は、目標を達成するために少しの創造性が必要な、限定された (しかし限定されすぎていない) ものが大好きです。私はインターネットを見回しましたが、見つけたページのほとんどは何十年も前のものであり、購入できる良い「パック」を示唆していませんでした (そして、それは上記のことをサポートします)。だからこそ、少しでもお力になれればと思い、お願いしております。:)
ありがとう、ホッファ。
embedded - 単線問題
私はあなたの資格のある助けが必要です!私はC++でプログラミングしており、PIC 18F87J50を使用して、H0ポートでDS18B20に接続しようとしています。
私の基礎となるプログラミングは正しいと思うので....私が抱えている問題(私が持っていると思います)は、ROMコマンドを実行するときに64ビットROMコードを検索していることです。
最初のバイトは、コンポーネントがどのファミリに属しているかを教えてくれるはずです(28h)。次の48ビットは、そのコンポーネントだけの一意のシリアルを提供するはずです。最後のものはCRCに使用されます。
このようにするとき、私は正しく考えていますか?
ROM_CODE [1-6]のコードを要求した場合、一意の番号を取得する必要がありますか?私はいけませんか?
敬具!