Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

ADCの6チャンネルDMA割り込みプログラムの実装方法

0 件の賞賛
22 返答(返信)
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@SunshineQAQ

現在どのボードを使用していますか? XMC4000シリーズをご使用の場合は、この添付ファイルを参照することをお勧めします。 これがお役 CAN ことを願っています。

ブラジル、

オーウェン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

XMC7000シリーズを使用しています。

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@SunshineQAQ

これを実現するには CAN 次の 2 つの方法があります。

1) 'ADC_basic' に基づいて新しいアプリケーションを作成し、他のチャネルの定義を追加してから、DMA 割り込みを追加します。

Owen_Su_0-1691473596616.png

2)空のアプリケーションを構築し、デバイスコンフィギュレータを使用してチップを構成し、下の図を参照してください。

Owen_Su_1-1691473700120.png

詳細については、[SAR2ドキュメントを開く]をクリックする CAN 。 これがお役 CAN ことを願っています。

ブラジル、

オーウェン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

構成が完了した後、どの関数を呼び出すべきかわからず、これらの関数を使用すると、起動するのが面倒になります。

よろしくお願いいたします

 

0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@SunshineQAQ

このドキュメントを読んでから CAN 再試行してください。 このドキュメントには多くの基本的なユースケースが記載されているため、詳細な調査を行う前に、SAR ADCの構成プロセスに慣れ CAN 。 これがお役 CAN ことを願っています。

ブラジル、

オーウェン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

このファイルを読んだ後も、ADCのDMA割り込みを設定する方法がわかりません。 詳細なデモはありますか? CAN 具体的にしてください。

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

ADC DMA割り込みのすべての構成スクリーンショットとコードスクリーンショットを提供していただけますか? 私は本当にこれが必要です。

よろしくお願いいたします

0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

最初にこのドキュメントを参照 CAN 、3.4章でADC_DMAを実現するための対応するコードが含まれています。 そして、私はあなたにテストの後にプロジェクトを与えます、あなたの理解に感謝します。

Owen_Su_0-1691998655062.png

ブラジル、

オーウェン

0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@SunshineQAQ

添付ファイルを参照してコードを変更する CAN 。 これがお役 CAN ことを願っています。

ブラジル、

オーウェン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

MTBオープンを使用した後、プログラムをダウンロードして解凍しましたが、表示エラー CAN コンパイルされません。

SunshineQAQ_0-1692175304065.png

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

1)あなたの手口のバージョンは何ですか?

2)プロジェクトをどのようにインポートしますか? インポートするには、以下の手順に従ってください。

Owen_Su_0-1692175835914.png

Owen_Su_1-1692175877524.png

Owen_Su_2-1692175924633.png

3)インポート後、プロジェクトをコンパイル CAN 、 'ADCDMA'の定義を欠いているエラーがある場合は、対応する定義を 'main.c'に追加する必要があります。

Owen_Su_4-1692176383756.png

4)その後、「シリアルポートユーティリティ」を使用してADC変換の結果を観察する CAN 。

ブラジル、

オーウェン

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

または、デバイス コンフィギュレータ で DMA CAN 設定する場合:

Owen_Su_0-1692176908226.pngOwen_Su_1-1692176932560.png

この手順は、 前のコメントの手順 3) と同じ効果があります。関連する定義がない場合は、この手順をスキップ CAN 。

ブラジル、

オーウェン

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@SunshineQAQ

1)現在使用しているModusのバージョンについては、Modusを最新バージョンに更新してください。

2) 上記の問題については、インポート プロセス中に関連する DMA コンフィギュレーションが失われたことが原因です。 したがって、Modusを更新した後にプロジェクトを再インポートする必要があります。

3)「デザイン.modus」を置き換えます プロジェクト内のファイル

Owen_Su_0-1692240187956.png

Owen_Su_1-1692240197386.png

Owen_Su_2-1692240211570.png

インポート後、対応するファイルに移動して「design.modus」を置き換える必要があります ファイル:

Owen_Su_4-1692240461938.png

Owen_Su_3-1692240428218.png

注意:最初のものは私があなたに与えたファイルであり、2番目のものはModusプロジェクトが保存されている場所です。

4)次に、「デバイスコンフィギュレーター」を開き、DMAが完全に構成されているかどうかを確認し、「保存」をクリックして、プロジェクトをリビルドします。

Owen_Su_5-1692240882557.png

5)サンプルレートについては、イベントトリガーの設定を変更 CAN 。

ブラジル、

オーウェン

 

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

あなたのコードに従って6つのADCチャンネルのDMA割り込みを設定すると、コードの量は非常に多くなります。 私の要求は、6つのADCチャネルによって収集されたデータをDMAを介してメモリに格納し、すべてのストレージが完了した後に割り込みを生成することです。

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

1)昨日送信したスクリーンショットに従って、最初の種類のDMAを構成しました。

SunshineQAQ_0-1692243904763.png

SunshineQAQ_1-1692243968212.png

2)2番目のタイプは昨日送ってくれたドキュメントで、どこにも変更していません。

SunshineQAQ_2-1692243996764.png

SunshineQAQ_3-1692244018062.png

これら2つのうちどちらが正しいですか、そしてなぜ私のものはあなたのものと違うのですか?

よろしくお願いいたします

 

0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

1)DMA割り込みで完了することと完了しないことがあるのはなぜですか?

SunshineQAQ_0-1692668069903.png

2)同じ構成を使用して別のADCチャネルのDMA割り込みを構成したため、どちらのチャネルも使用できませんでした。両方のチャネルがスタックしたのはなぜですか?

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

1)この値の定義を確認する必要があります。

Owen_Su_0-1692672916231.png

割り込みがない場合、または他のエラーが報告される可能性がある場合は、test_complete = 0 です。 私たちの状態では、その時点で割り込みがないことを意味します。

2)プロジェクトを確認しましたが、コードに定義を追加しただけですが、チャネル1の割り込みを追加せず、チャネル1を構成しませんでした。 あなたは 'ADC_HW' の定義を見つける必要があります、あなたはちょうど 'CH0' の定義を持っていることがわかります。

Owen_Su_1-1692673573163.png

3)デバイスコンフィギュレータを使用し、チャネル数を追加して構成してから、他のチャネルの割り込みを追加する必要があります。 最初に私のルーチンを見て、1つのチャネルを構成する方法を学ぶ必要があると思います。

Owen_Su_2-1692673697349.png

ブラジル、

オーウェン

0 件の賞賛
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

ioポートをP6.0からP18.2に変更しましたが、他のすべての構成は変更されていませんでした。 これで、ADCはデータを読み取ることができず、DMAはデータの転送に失敗します。 それはなぜか。

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

これは1つのADCチャネルのDMA割り込みにすぎませんが、6つのADCチャネルにDMA割り込みを使用する必要がある場合、どのように実装すればよいですか?

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

1)コードの定義がそこにあるのがわかりますが、なぜそれを開くのかわかりません。

SunshineQAQ_0-1692683071404.png

2) そして、dma割り込み受信は非常に非効率的であることがわかりました。

よろしくお願いいたします

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、オーウェン、

最初の印刷だけがtest_complete = 0x88で、その後のtest_complete = 0であり、ADCのサンプルレートが少し遅いことがわかりました。

SunshineQAQ_1-1692180851447.png

よろしくお願いいたします

 

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

添付ファイルのコードを確認しましたが、DAM関連のコンテンツは設定していませんが、「if」ステートメントを判断するための基礎として「ADCDMA」を使用しました。 そして、あなたのコードが変更されました、あなたが私があなたに送ったコードを使用して、単にPINを変更しただけなら、それは CAN うまくいきます、私はそれをテストしました(PINをP18.2に変更します)。

Owen_Su_0-1692856518799.png

コードが正常に実行されない場合は、実行中のロジックに従って段階的に確認する必要があります。 たとえば、「printf()」を追加するか、ブレークポイントを使用して、ADC割り込みがジャンプインしたかどうか、ADC割り込みが完了したかどうかを確認します。 等。 同様に、前に説明した方法によれば、マルチチャネル伝送を簡単に実現 CAN 。 これがお役 CAN ことを願っています。

Owen_Su_3-1692857009891.png

 

Owen_Su_2-1692856968629.png

ブラジル、

オーウェン

0 件の賞賛