問題タブ [msp430]
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 - 住所を取得する複数の方法
IAR C / C ++コンパイラのマニュアルでは、最適化に適したソースコードを作成するために次のように述べています。
&演算子を使用してローカル変数のアドレスを取得することは避けてください。これは2つの主な理由で非効率的です。まず、変数はメモリに配置する必要があるため、プロセッサレジスタに配置することはできません。これにより、コードが大きくなり、遅くなります。第2に、オプティマイザーは、ローカル変数が関数呼び出しの影響を受けないと想定できなくなりました。
ローカル変数のアドレスを取得する他の方法はありますか?明らかに、その変数へのポインターがあればそれを使用でき、配列があれば配列名を使用できることはわかっていますが、ローカル変数のアドレスを取得する他の方法を認識していません。 &演算子。
cmake - cmake初期コンパイラテストにコンパイルフラグを渡す方法は?
MSP430 マイクロコントローラー用のMSPGCC クロスコンパイラーを使用するプロジェクトをビルドするために CMake を使用しようとしています。単純なプログラムを正常にコンパイルするには、ターゲット プロセッサを示すコンパイル フラグを渡す必要があります。そうしないと、次のように失敗します。
したがって、-mmcuスイッチを使用してプロセッサを指定すると、正常に動作します。問題は、CMakeLists.txtファイルで既にこれを指定していますが、次のとおりです。
CMake は、コンパイラが単純なプログラムをコンパイルするためのテストに失敗したと不平を言います。これは、おそらくスイッチを使用していないために起こって-mmcuいるに違いありません (リンカ スクリプト ファイル memory.x を開けないというメッセージに注意してください)。
記録のために、私のツールチェーン ファイルは次のとおりです。私の PATH 変数を使用すると、次の場所にあるコンパイラ バイナリを見つけることができます/usr/local/bin。
-mmcuそうは言っても、CMakeがコンパイラテストを実行するために使用しているコンパイルフラグを確認する方法と、失敗しないようにカスタムフラグ(たとえば、など)を渡す方法を誰か教えてもらえますか?
assembly - MSP430 アセンブリ コードで「.bss」コマンドは何をしますか? たとえば、".bss beep_cnt,2" は変数 beep_cnt2 で何をしますか?
MSP430 アセンブリ コードで「.bss」コマンドは何をしますか? たとえば、".bss beep_cnt,2" は変数 beep_cnt2 で何をしますか?
assembly - 「$」サインイン アセンブリを使用したデータ値へのアクセス
これらの変数に格納されているデータにアクセスする方法を知りたいのですが...たとえば、N0$ の意味や、そこからデータをレジスタに抽出する方法がわかりません。
signal-processing - MCU での効率的な振幅変調 (C)
マイクロコントローラー シンセに取り組んでいますが、ボリューム エンベロープの生成で問題が発生しました。私は現時点でこのコードを持っています:
to_dac =(SinTable[lut_pos] * (volume))>>8;
正常に動作しますが、解像度が非常に悪く、十分に高速に実行できるように改善する方法がわかりません (これはすべてのサンプルで実行する必要があるため)。
これらは私が今得ている結果です:
これが現在の MP3 のサウンドです: (注: DAC はブレッドボード上にあり、出力にローパス フィルターがないため、余分なノイズが発生します)
私はMSP430デバイスを使用しています(現時点ではMSP430G2553ですが、本当に必要な場合はMSP430F5510を使用できます(より多くのメモリ、より高速な速度)例を探してみましたが、それらはすべて浮動小数点変数sin()を使用しています) ; math.h の関数などですが、私にはそれらの贅沢はありません...
編集:私は完全なばかで、別のコードで振幅エンベロープの解像度を低くしましたが、振幅変調の他のソリューションを受け入れています。
c - uint8_t * const LCDMem =(uint8_t *)&LCDM3; 意味
このコードは、lcd構成用のmsp430fg4618トレーナーキットで使用されます。上記のコードの意味を誰か説明してもらえますか?
array LCDMem[]?の使用を許可します 方法がわかりません。
embedded - アップロードされたバイナリサイズが実際のサイズよりもはるかに小さいのはなぜですか?
私はこれまでAVRとMSP430のみを使用しましたが、これは両方に当てはまります。コンパイルして静的にリンクした後、私の最終的なELFバイナリは約208kBで、IntelHexバイナリは約41kBです。AVRDUDEは、約18kBをアップロードしていると言っています。ここで実際に何が起こっているのですか?
linux - Mspdebug データを受信できません
マイクロコントローラーのプログラミングを学ぼうとしています。私は msp430 から始めて、mspdebug 0.18 と mspgcc 4.5.3 をインストールしました。テスト用に簡単なプログラムをデバイスにロードしたいのですが、mspdebug はデバイスの消去にパスできません。
arduino - Launchpad msp430 (g2553) で Arduino のライブラリ dht11 が機能しないのはなぜですか?
Launchpad が Arduino と互換性があるのに、ライブラリが機能しないのはなぜですか? センサー データは、シリアル ポートに取得するのに十分です。
dht11 ライブラリと dht22 ライブラリの違いは何ですか?
usb - 複数の MSP430 間で I2C、SPI、および USB 通信を同時に行うことは可能ですか?
いくつかの I2C スレーブ デバイスのマスターとして機能するように、いくつかの MSP430x6xx マイクロコントローラーをプログラムしました。MSP430 の 1 つは、内蔵の USB モジュールを使用して、I2C スレーブから受信したデータを PC に転送します。これを拡張して、すべてのマイクロ コントローラーがそれぞれの I2C スレーブから受信したデータを、共通のバス システムを使用して PC に送信できるようにしたいと考えています。SPI を使用して、すべての MSP430 から単一の MSP430 マスター (すでに I2C マスターと USB デバイスとして同時に機能している) にデータを転送し、それを PC に転送することは可能ですか? 他の提案をいただければ幸いです。ありがとう