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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

 

カスタムライブラリを作成し、PDLを使用してLEDをArduinoヘッダーのデジタルピンに切り替えるプロジェクトを作成することに成功しましたか?

PSoC Arduinoフォームファクタピンを使用して、Modusツールボックスを使用してArduinoシールドをPSOC6キットに接続しますか?

ModusToolboxで独自のライブラリを作成するCAN?

今、私はこの知識を組み合わせて、Arduinoデジタルピン呼び出しを実装するlibrayを作成しようとしています。

私はarduinoと呼ばれるcutomライブラリプロジェクトを持っています、それは私がカスタムライブラリを作成するために行ったステップを使用して作成しました。 およびgpio.h Arduino呼び出しを実装する2つの関数があります。

  1. デジタル書き込み(LED、高/低);ピンをハイまたはローに設定します
  2. 遅延(500);500ミリ秒

私はPDL APIをカスタムライブラリに実装することに固執していますか?

デバイスコンフィギュレータを実行してこのプロジェクトのBSPとライブラリを選択するためのIDEのウェアが見当たりません。

これは再利用可能なライブラリにPDL呼び出しを実装する方法ですか?それとももっと良い方法がありますか?

次のスクリーン ショットは、プロジェクト gpio.c を使用した MTD を示しています そして私が受け取ることを期待するエラー。

私が見逃しているかもしれないことについて何か考えはありますか?

よろしく

スティーブK

スクリーンショット以下

skruglewicz_0-1692046111441.png

 

 

 

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @skruglewicz

応答が遅いことをお詫びします。

異なるBSPを使用する可能性があるため、プロジェクトにスタティックライブラリ(プリコンパイル済み)を使用することはお勧めしません。 各 BSP には、使用するレジスタが異なります。
静的ライブラリは、アプリケーション関数、または特定のBSPを使用せずにアルゴリズムまたは関数のみを含む特定の関数を構築する場合に適しています。
ただし、特殊なケースでは、静的ライブラリ内で BSP の代わりにポインタ CAN 。

BSP の機能を含むスタティックライブラリをビルドする場合は、インクルードファイルのすべての参照を追加する必要があります。

プロジェクト名>プロパティを右クリックします。
セクション C / C ++ビルド>設定 タブの ツール設定. BSP を含むライブラリファイルのパスまたはワークスペースを追加する必要があります (例: mtb_shared/mtb-pdl-cat1/latest-v3)。X/ドライバ/インクルード

ADSW_0-1693466854501.png

 

よろしくお願いします、

ティッカー

元の投稿で解決策を見る

0 件の賞賛
5 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは @skruglewicz

Arduinoピンマップのgpio関数を探しているなら, 
このファイルを試す CAN 。
そして、まばたき主導を試してみてください

#include "arduino_gpio.h"

int main(void)
{
    cy_rslt_t result;
#if defined (CY_DEVICE_SECURE)
    cyhal_wdt_t wdt_obj;

    /* Clear watchdog timer so that it doesn't trigger a reset */
    result = cyhal_wdt_init(&wdt_obj, cyhal_wdt_get_max_timeout_ms());
    CY_ASSERT(CY_RSLT_SUCCESS == result);
    cyhal_wdt_free(&wdt_obj);
#endif

    /* Initialize the device and board peripherals */
    result = cybsp_init();

    /* Board init failed. Stop program execution */
    if (result != CY_RSLT_SUCCESS)
    {
        CY_ASSERT(0);
    }

    /* Enable global interrupts */
    __enable_irq();
    initSystick();
    setup();
    for (;;)
    {
    	loop();
    }
}

int pin = 7;
void setup()
{
	pinMode(pin,OUTPUT);
	digitalWrite(pin, HIGH);
}

uint32_t time_millis = 0;
void loop()
{
	if(millis() - time_millis >= 1000u)
	{
		digitalToggle(pin);
		time_millis = millis();
	}
}

CY8CKIT-062S4でテスト済みで動作します
しかし、私はあなたのプロジェクトの異なるBSPを使用するかもしれないので、あなたはピンを再マッピングする必要があると思います。


よろしくお願いします、

ティッカー

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

こんにちは @ADSW 

お返事ありがとうございます。 zipファイルのファイルをダウンロードして確認しました。 コードは私には理にかなっていますが、今私はいくつかの質問があります。

開発者がarduino呼び出しを使用してGPIOを実行するために再利用するためのカスタムライブラリを作成しようとしています。 Hackster.io のチャレンジに参加しています物事をコードでつなぎますか? この課題の目標は、パブリックに再利用 CAN デバイスライブラリを作成することです。

私のアイデアは、ハードウェア(センサー、アクチュエータなど)をArduino互換ヘッダー(J1、J2、J3、J4)に接続することです。 PAL APIを使用してこれを正常に接続してコーディングしました。応答は、開発者がPAL APIでより親しみやすいarduino呼び出しを使用できるようにすることです。

ここで、静的ライブラリを使用し、PALサンプルコードを含め、例で行ったようにarduinoが呼び出す関数を実装する必要があると仮定します。 次の手順を使用してスタティックライブラリを作成します。

  1. スタティック ライブラリ プロジェクトを作成する
    1. ツールチェーンとして 「 ARMクロスGCC」 を選択してくださ
    1. ファイル -> 新しい -> プロジェクト..."をクリックして「新規プロジェクト」ダイアログを開きます。
    2. 「スタティックライブラリ->空のプロジェクト」を選択し、プロジェクトに名前を付けます。
    3. 次に、「次へ」と「完了」を繰り返して、残りの構成を変更せずにプロジェクトを作成します。

 

今私はプロジェクトにファイルを作成します私の  問題は今 #include "cy_pdl.h"が見つからないということですか?私は間違って何をしていますか? Statisライブラリを作成するステップを逃しましたか?スタティックライブラリは再利用可能なライブラリを実装する方法ですか、それともModusToolboxのより良い方法ですか?

また、あなたのコードについては、あなたが説明するようにメインコードを持つプロジェクトでどのように使用しますか? 2つのファイルをsrcディレクトリに配置してビルドしますか? 私はModustoolboxで再利用可能なライブラリを作成するのは初めてです。 どんなガイドと方向性も大歓迎です。

事前にアドバイスと親切な敬意を払ってください

スティーブK

 

 

 

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

こんにちは @ADSW 

CY8CKIT-062S4を使用してソリューションを使用することができました。可能な共有ライブラリの形式について私を照らしてくれてありがとう。PSoC 6ペリフェラルドライバーライブラリ(PDL)を使用してArduino呼び出しを実装する時間を大幅に節約できました 。他にもいくつかのPSoC 6キットが利用可能で、それらすべてに異なるピンマッピングがあることに気付きました。 あなたのコードはこれを非常に明確にしました。 私は悟りを開いてきました。 感謝。。。

しかし、これはコミュニティに提起された私の質問に答えていません。

あなたの解決策は、Modustoolboxプロジェクトのzipファイルで送信した2つのファイルをインクルードし、main.cにコードを含めることです ファイル。 これは、メイクファイルに2つのファイルを追加せずにビルドされますか? 素晴らしい機能。 そして、ライブラリはBSPに従ってコンパイルされます。 輝かしい... 私はそれに慣れていません。 私の経験は、ライブラリファイルを構築し、それをメイクファイルに含めることであり、これはライブラリがコードに添付される方法です。 私はそれが台本を共有するために働くと思います。

スタティックライブラリのアプローチは、私が期待していたものです。 しかし、SDKは静的ではないため、PDLまたはHAL SDKの使用をサポートしていないようです。 BSPに応じて構築されていますか?

あなたの経験では、PSoC 6 SDK呼び出しを持つ静的ライブラリを使用できないことに同意しますか? 私のタイトルでは、誤解を招く可能性のある「カスタムライブラリ」について言及しています。

すべてのあなたの助けをありがとう

@skruglewicz 

 

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

こんにちは @skruglewicz

応答が遅いことをお詫びします。

異なるBSPを使用する可能性があるため、プロジェクトにスタティックライブラリ(プリコンパイル済み)を使用することはお勧めしません。 各 BSP には、使用するレジスタが異なります。
静的ライブラリは、アプリケーション関数、または特定のBSPを使用せずにアルゴリズムまたは関数のみを含む特定の関数を構築する場合に適しています。
ただし、特殊なケースでは、静的ライブラリ内で BSP の代わりにポインタ CAN 。

BSP の機能を含むスタティックライブラリをビルドする場合は、インクルードファイルのすべての参照を追加する必要があります。

プロジェクト名>プロパティを右クリックします。
セクション C / C ++ビルド>設定 タブの ツール設定. BSP を含むライブラリファイルのパスまたはワークスペースを追加する必要があります (例: mtb_shared/mtb-pdl-cat1/latest-v3)。X/ドライバ/インクルード

ADSW_0-1693466854501.png

 

よろしくお願いします、

ティッカー

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

こんにちは @ADSW 

答えてくれてありがとう。 それは今私には理にかなっています。 SDK 呼び出しを含むライブラリは、ビルド時にプロジェクト内の選択した BSP にコンパイルする必要があります。

あなたのアドバイスとエレガントな解決策は大歓迎です。

@skruglewicz

 

 

 

0 件の賞賛