12: 2010-07-30 (金) 22:26:57 takaboo ソース 13: 2010-09-22 (水) 13:15:42 takaboo ソース
Line 263: Line 263:
**UD3 API [#c8cb0041] **UD3 API [#c8cb0041]
-ユーザ自らCPUのペリフェラルへ直接アクセスするコーディングをする訳ではなく、GCC Developer Liteが提供するUD3専用ライブラリを介してUD3PREの機能へアクセスする事になります。~ +APIに関しては[[こちら>http://www.besttechnology.co.jp/modules/knowledge/?BTA022%2FBTA023%20%E3%83%A6%E3%83%8B%E3%83%90%E3%83%BC%E3%82%B5%E3%83%AB%E3%83%89%E3%83%A9%E3%82%A4%E3%83%903#c8cb0041]]のリリース版ユニバーサルドライバ3のドキュメントを参照ください。また、GCC Developer Lite Version 2.3.2.6r4以降を適用ください。
-APIを使用する前に、ソースプログラムの先頭に ud3.h をインクルードしてください。 +
- #include <ud3.h> +
-APIの詳細は以下に列挙します。 +
- +
-***UD3_INITIALIZE [#bd0f80b9] +
-一般的なC言語のプログラムで言えばmain関数に相当し、一番最初に実行される初期化関数。タスクの起動やGPIOの初期化等はこの関数内で記述する。 +
- void UD3_INITIALIZE(void); +
--パラメータ +
-~なし +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // 動作環境設定 +
-   // GPIO8/9/10をPWMキャプチャモードに設定 +
-   UD3_CFG_GPIO8 (GPIO_PWM_CAP); +
-   UD3_CFG_GPIO9 (GPIO_PWM_CAP); +
-   UD3_CFG_GPIO10 (GPIO_PWM_CAP); +
-   // モータの設定 +
-   UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); +
-   UD3_SET_M2DRIVEMODE (_UD_MOTOR_DRIVE); +
-   UD3_SET_DUTY(500, -500); +
-   // 使用タスクを起動 +
-   UD3_ACTIVE_TASK (1); +
-   UD3_ACTIVE_TASK (2); +
- } +
- +
-***UD3_TASK1 [#n10e53c9] +
-UD3は最大4つのユーザ定義タスクを同時に実行できるが、UD3_TASK1の名称で作られた関数は自動的にタスク1としてOSに登録される。~ +
-タスクの活性化は[[UD3_ACTIVE_TASK>#f9cdcf0a]]で行う。~ +
-複数のタスクを定義し活性化すると各々のタスクはOSによって並列実行されるが、タスク数に乗じてタスク自体の実行速度は遅くなる。 +
- +
- UD3_TASK1() +
--パラメータ +
-~なし +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_TASK1 () { +
-   for (;;) { +
-     UD3_SET_LED (true);  // LED点灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-     UD3_SET_LED (false); // LED消灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-   } +
- } +
- +
- UD3_INITIALIZE () { +
-   UD3_ACTIVE_TASK (1);  // タスク1をアクティブ化 +
- } +
- +
-***UD3_TASK2 [#xb6d65de] +
-UD3は最大4つのユーザ定義タスクを同時に実行できるが、UD3_TASK2の名称で作られた関数は自動的にタスク2としてOSに登録される。~ +
-タスクの活性化はタスクの活性化は[[UD3_ACTIVE_TASK>#f9cdcf0a]]で行う。~ +
-で行う。~ +
-複数のタスクを定義し活性化すると各々のタスクはOSによって並列実行されるが、タスク数に乗じてタスク自体の実行速度は遅くなる。 +
- +
- UD3_TASK2(); +
--パラメータ +
-~なし +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_TASK2 () { +
-   for (;;) { +
-     UD3_SET_LED (true);  // LED点灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-     UD3_SET_LED (false); // LED消灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-   } +
- } +
- +
- UD3_INITIALIZE () { +
-   UD3_ACTIVE_TASK (2);  // タスク2をアクティブ化 +
- } +
- +
-***UD3_TASK3 [#e13da6de] +
-UD3は最大4つのユーザ定義タスクを同時に実行できるが、UD3_TASK3の名称で作られた関数は自動的にタスク3としてOSに登録される。~ +
-タスクの活性化は[[UD3_ACTIVE_TASK>#f9cdcf0a]]で行う。~ +
-複数のタスクを定義し活性化すると各々のタスクはOSによって並列実行されるが、タスク数に乗じてタスク自体の実行速度は遅くなる。 +
- +
- UD3_TASK3(); +
--パラメータ +
-~なし +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_TASK3 () { +
-   for (;;) { +
-     UD3_SET_LED (true);  // LED点灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-     UD3_SET_LED (false); // LED消灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-   } +
- } +
- +
- UD3_INITIALIZE () { +
-   UD3_ACTIVE_TASK (3);  // タスク3をアクティブ化 +
- } +
- +
-***UD3_TASK4 [#w06ef286] +
-UD3は最大4つのユーザ定義タスクを同時に実行できるが、UD3_TASK4の名称で作られた関数は自動的にタスク4としてOSに登録される。~ +
-タスクの活性化は[[UD3_ACTIVE_TASK>#f9cdcf0a]]で行う。~ +
-複数のタスクを定義し活性化すると各々のタスクはOSによって並列実行されるが、タスク数に乗じてタスク自体の実行速度は遅くなる。 +
- +
- UD3_TASK4(); +
--パラメータ +
-~なし +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_TASK4 () { +
-   for (;;) { +
-     UD3_SET_LED (true);  // LED点灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-     UD3_SET_LED (false); // LED消灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-   } +
- } +
- +
- UD3_INITIALIZE () { +
-   UD3_ACTIVE_TASK (4);  // タスク4をアクティブ化 +
- } +
- +
-***UD3_CFG_GPIO0 [#c10e9d62] +
-GPIO0の端子機能を設定する。 +
- int UD3_CFG_GPIO0 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO0 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO1 [#y4f5f690] +
-GPIO1の端子機能を設定する。 +
- int UD3_CFG_GPIO1 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO1 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO2 [#l7586e65] +
-GPIO2の端子機能を設定する。 +
- int UD3_CFG_GPIO2 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO2 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO3 [#a02184b5] +
-GPIO3の端子機能を設定する。 +
- int UD3_CFG_GPIO3 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO3 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO4 [#l791e053] +
-GPIO4の端子機能を設定する。 +
- int UD3_CFG_GPIO4 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO4 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO5 [#ad4fd1e3] +
-GPIO5の端子機能を設定する。 +
- int UD3_CFG_GPIO5 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO5 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO6 [#x95d33cb] +
-GPIO6の端子機能を設定する。 +
- int UD3_CFG_GPIO6 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO6 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO7 [#c82b29f3] +
-GPIO7の端子機能を設定する。 +
- int UD3_CFG_GPIO7 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~以下のリストから一つだけ選択できる。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_ADC (2:アナログ入力)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // ADC +
-   UD3_CFG_GPIO7 (GPIO_ADC); +
- } +
- +
-***UD3_CFG_GPIO8 [#n31eda6b] +
-GPIO8の端子機能を設定する。 +
- int UD3_CFG_GPIO8 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~GPIO端子の動作内容を設定。以下のリストから一つだけ選択できる。なお、GPIO_ADC(2:アナログ入力)は設定できない。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力)~ +
-GPIO_PWM_CAP (5:パルス幅計測用入力かつプルアップON)~ +
-GPIO_PWM (6:PWM出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場に-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // PWMキャプチャモードに設定 +
-   UD3_CFG_GPIO8 (GPIO_PWM_CAP); +
- } +
- +
-***UD3_CFG_GPIO9 [#u201f4af] +
-GPIO9の端子機能を設定する。 +
- int UD3_CFG_GPIO9 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~GPIO端子の動作内容を設定。以下のリストから一つだけ選択できる。なお、GPIO_ADC(2:アナログ入力)は設定できない。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力)~ +
-GPIO_PWM_CAP (5:パルス幅計測用入力かつプルアップON)~ +
-GPIO_PWM (6:PWM出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場に-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // パルス幅計測モードに設定 +
-   UD3_CFG_GPIO9 (GPIO_PWM_CAP); +
- } +
- +
-***UD3_CFG_GPIO10 [#d2dd2f39] +
-GPIO10の端子機能を設定する。 +
- int UD3_CFG_GPIO10 (TGPIOMode conf); +
--パラメータ +
---TGPIOMode '''conf''' +
-~GPIO端子の動作内容を設定。以下のリストから一つだけ選択できる。なお、GPIO_ADC(2:アナログ入力)は設定できない。 +
-~GPIO_IN_PULLUP_OFF (0:入力かつ内蔵プルアップOFF)~ +
-GPIO_IN_PULLUP_ON (1:入力かつ内蔵プルアップON)~ +
-GPIO_OUT_OPENDRAIN (3:オープンドレイン出力)~ +
-GPIO_OUT_PUSHPULL (4:プッシュプル出力)~ +
-GPIO_PWM_CAP (5:パルス幅計測用入力かつプルアップON)~ +
-GPIO_PWM (6:PWM出力) +
-~デフォルトはGPIO_IN_PULLUP_OFF。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場に-1が返される。 +
--使用例 +
- #include <ud3.h> +
- +
- UD3_INITIALIZE () +
- { +
-   // パルス幅計測モードに設定 +
-   UD3_CFG_GPIO10 (GPIO_PWM_CAP); +
- } +
- +
-***UD3_ACTIVE_TASK [#f9cdcf0a] +
-指定したタスクをアクティブにする。タスクをアクティブにしていない場合には、タスクを定義してあってもそのタスクは実行されない。 +
- +
- void UD3_ACTIVE_TASK (task); +
--パラメータ +
---int_t '''task''' +
-~タスク番号。指定できるタスク番号は1~4。 +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_TASK1 () { +
-   for (;;) { +
-     UD3_SET_LED (true);  // LED点灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-     UD3_SET_LED (false); // LED消灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-   } +
- } +
- +
- UD3_INITIALIZE () { +
-   UD3_ACTIVE_TASK (1);  // タスク1をアクティブ化 +
- } +
- +
-***UD3_WAIT [#ja9bd39f] +
-ミリ秒単位でプログラムの実行を待つ。 +
- void UD3_WAIT (int_t tm); +
--パラメータ +
---int_t '''tm''' +
-~待ち時間(msec)を指定。 +
--戻り値 +
-~なし +
--使用例 +
- #include <ud3.h> +
- +
- UD3_TASK1 () { +
-   for (;;) { +
-     UD3_SET_LED (true);  // LED点灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-     UD3_SET_LED (false); // LED消灯 +
-     UD3_WAIT(500);      // 0.5秒待ち +
-   } +
- } +
- +
- UD3_INITIALIZE () { +
-   UD3_ACTIVE_TASK (1); +
- } +
- +
-***UD3_SET_GPIOOUTPUT [#sb36fb83] +
-UD3_CFG_GPIOxにてGPIO_OUT_OPENDRAINないしGPIO_OUT_PUSHPULLに設定された端子のみ出力状態を変更する。 +
- int UD3_SET_GPIOOUTPUT (uint16_t out); +
--パラメータ +
-~uint16_t '''out''' +
-~出力データを設定。outの各ビットとGPIOの出力ポートは以下に割り当てられる。 +
-|=out BIT|=15|=14|=13|=12|=11|=10|= 9|=8|=7|=6|=5|=4|=3|=2|=1|=0| +
-|=GPIO|=- |=- |=- |=- |=- |=10  |=9  |=8  |=7  |=6  |=5  |=4  |=3  |=2  |=1  |=0  | +
-~デフォルトは0。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- UD3_CFG_GPIO0(GPIO_OUT_PUSHPULL); // GPIO0を出力に +
- UD3_CFG_GPIO1(GPIO_OUT_PUSHPULL); // GPIO1を出力に +
- UD3_CFG_GPIO2(GPIO_OUT_PUSHPULL); // GPIO2を出力に +
- +
- UD3_SET_GPIOOUTPUT (0x01); // GPIO0のみにHighを出力 +
- UD3_SET_GPIOOUTPUT (0x02); // GPIO1のみにHighを出力 +
- UD3_SET_GPIOOUTPUT (0x04); // GPIO2のみにHighを出力 +
- UD3_SET_GPIOOUTPUT (0x07); // GPIO0~2にHighを出力 +
- UD3_SET_GPIOOUTPUT (0x07); // GPIO0~2にLowを出力 +
- +
-***UD3_SET_BUZZER [#y8fc67a7] +
-任意周波数・音長でブザーを鳴らす。 +
- int UD3_SET_BUZZER (uint8_t scale, uint8_t len); +
--パラメータ +
---uint8_t '''scale''' +
-~音程を0~52の範囲で設定。 +
---uint8_t '''len''' +
-~音長を0~250(x10ms)の範囲で設定。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- UD3_SET_BUZZER (24, 20); +
- UD3_WAIT (300); +
- UD3_SET_BUZZER (30, 20); +
- +
-***UD3_SET_LED [#q6f1d21e] +
-LEDの点灯/消灯。~ +
- int UD3_SET_LED (uint8_t on); +
--パラメータ +
---uint8_t '''on''' +
-~0で消灯、1で点灯する。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // LEDを点滅させます。 +
- while (1) { +
-   UD3_SET_LED (1); +
-   UD3_WAIT (200); +
-   UD3_SET_LED (0); +
-   UD3_WAIT (200); +
- } +
- +
-***UD3_SET_M1FREQUENCY [#wc47b8e1] +
-M1のPWM周波数を設定。~ +
- int UD3_SET_M1FREQUENCY (uint8_t freq); +
--パラメータ +
---uint8_t '''freq''' +
-~周波数を0~200[kHz]で指定。~ +
-なお周波数が高くなると最終段での出力が得られにくくなるため、最大でも100kHz程度にとどめることを推奨する。 +
-~デフォルトは50kHz +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // M1の周波数を100kHzに設定 +
- UD3_SET_M1FREQUENCY (100); +
- +
-***UD3_SET_M1RECHARGE [#n8f06456] +
-負荷が駆動できる最大PWMデューティーを制限するための値。負荷によって調整が必要なパラメータである。~ +
-調整にはデューティー100%で運転をしている状態で、本設定値を0から順に負荷の運転が安定するまで大きくして行く。大きくても20%以下で安定すると思われる。~ +
- int UD3_SET_M1RECHARGE (uint8_t re); +
--パラメータ +
---uint8_t '''re''' +
-~0~100[%]を設定。100%-re が出力リミッタとして働く。 +
-~デフォルトは5% +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // M1の最大PWM制限幅を5%に設定します +
- UD3_SET_M1RECHARGE (5); +
- +
-***UD3_SET_M1DRIVEMODE [#a35c521d] +
-M1の駆動モードを設定する。 +
- UD3_SET_M1DRIVEMODE (mode); +
--パラメータ +
---uint8_t '''mode''' +
-~_UD_MOTOR_BRAKE (0:ブレーキモード)~ +
-_UD_MOTOR_DRIVE (1:ドライブモード) +
-~デフォルトは_UD_MOTOR_BRAKE。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // M1をドライブモードにします +
- UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); +
- +
-***UD3_SET_M1PWMDUTY [#de09cbea] +
-M1のPWM DUTYを設定する。~ +
- int UD3_SET_M1PWMDUTY (int16_t duty); +
--パラメータ +
---int16_t '''duty''' +
-~デューティーを-1000~0~1000[‰]で指定。マイナス値は逆転を意味する。~ +
-0‰の場合はショートブレーキとなる。 +
-~デフォルトは0‰。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
-±1000の範囲を越えて設定されている場合にも1が返されるが、リミッタで値はクリップされる。 +
--使用例 +
- // M1を20%のDUTYで動作させます。 +
- UD3_SET_M1PWMDUTY (200); +
- +
-***UD3_SET_M2FREQUENCY [#jf15fafa] +
-M2のPWM周波数を設定。~ +
- int UD3_SET_M2FREQUENCY (uint8_t freq); +
--パラメータ +
---uint8_t '''freq''' +
-~周波数を0~200[kHz]で指定。~ +
-なお周波数が高くなると最終段での出力が得られにくくなるため、最大でも100kHz程度にとどめることを推奨する。 +
-~デフォルトは50kHz +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // M2の周波数を100kHzに設定 +
- UD3_SET_M2FREQUENCY (100); +
- +
-***UD3_SET_M2RECHARGE [#q3ed4f2c] +
-負荷が駆動できる最大PWMデューティーを制限するための値。負荷によって調整が必要なパラメータである。~ +
-調整にはデューティー100%で運転をしている状態で、本設定値を0から順に負荷の運転が安定するまで大きくして行く。大きくても20%以下で安定すると思われる。 +
- int UD3_SET_M2RECHARGE (uint8_t re); +
--パラメータ +
---uint8_t '''re''' +
-~0~100[%]を設定。100%-re が出力リミッタとして働く。 +
-~デフォルトは5%。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // M2の最大PWM制限幅を5%に設定します +
- UD3_SET_M2RECHARGE (5); +
- +
-***UD3_SET_M2DRIVEMODE [#k9ab964c] +
-M2の駆動モードを設定する。 +
- UD3_SET_M2DRIVEMODE (mode); +
--パラメータ +
---uint8_t '''mode''' +
-~_UD_MOTOR_BRAKE (0:ブレーキモード)~ +
-_UD_MOTOR_DRIVE (1:ドライブモード) +
-~デフォルトは_UD_MOTOR_BRAKE。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // M2をドライブモードにします +
- UD3_SET_M2DRIVEMODE (_UD_MOTOR_DRIVE); +
- +
-***UD3_SET_M2PWMDUTY [#k2c1cab9] +
-M2のPWM DUTYを設定する。~ +
- int UD3_SET_M2PWMDUTY (int16_t duty); +
--パラメータ +
---int16_t '''duty''' +
-~デューティーを-1000~0~1000[‰]で指定。マイナス値は逆転を意味する。~ +
-0‰の場合はショートブレーキとなる。 +
-~デフォルトは0‰。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
-±1000の範囲を越えて設定されている場合にも1が返されるが、リミッタで値はクリップされる。 +
--使用例 +
- // M2を20%のDUTYで動作させます。 +
- UD3_SET_M2PWMDUTY (200); +
- +
-***UD3_SET_MOTORREVRSE [#m604c98d] +
-M1/2の回転方向を反転させる。 +
- int UD3_SET_MOTORREVRSE (int8_t rev); +
--パラメータ +
---int8_t '''rev''' +
-以下のビットで各々反転を設定。 +
-~_M1_REV (0x1;M1反転)~ +
-_M2_REV (0x02:M2反転) +
-~デフォルトは0。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // 両モータの回転を逆転します。 +
- UD3_SET_MOTORREVRSE (_M1_REV | _M2_REV); +
- +
-***UD3_SET_MOTORENABLE [#x441e3d8] +
-モータの駆動回路を活性/不活性化する。 +
- int UD3_SET_MOTORENABLE (int8_t enb); +
--パラメータ +
---int8_t '''enbv''' +
-~0でモータドライバの機能を不活性化しモータをフリー状態にする。1でモータドライバの機能を活性化し各パラメータに応じて出力がなされる。 +
-~デフォルトは0。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // モータ駆動回路を活性化する。 +
- UD3_SET_MOTORENABLE (1); +
- +
-***UD3_SET_MOTORRAMP [#o63cc21d] +
-M1/M2共に指令デューティーに対して最終段は常時ランプ関数を介して出力がなされる。その際のミリ秒毎での増分を設定する。 +
- int UD3_SET_MOTORRAMP (int8_t ramp); +
--パラメータ +
---int8_t '''ramp''' +
-~1ミリ秒あたりの増分を1~200‰の値で与える。~ +
-1を指定した場合、デューティー比を0‰の状態から1000‰へ変更すると1秒かけて0‰から1000‰へ直線的に変化する。また200を指定した場合、デューティー比を0‰の状態から1000‰へ変更すると5ミリ秒かけて0‰から1000‰へ直線的に変化する。 +
-~デフォルトは20。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // 1ミリ秒毎の勾配を10‰に設定 +
- UD3_SET_MOTORRAMP (10); +
- +
-***UD3_SET_DUTY [#u0bc4a8b] +
-M1とM2同時にDUTYを設定する。~ +
- int UD3_SET_DUTY (int16_t duty1, int16_t duty2); +
--パラメータ +
---int16_t '''duty1''' +
-~M1用デューティーを-1000[‰]~0~1000[‰]で指定。~ +
---int16_t '''duty2''' +
-~M2用デューティーを-1000[‰]~0~1000[‰]で指定。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
--使用例 +
- // M1を30%,M2を20%のDUTYで動作させます。 +
- UD3_SET_DUTY (300, 200); +
- +
-***UD3_SET_PWM8CLOCK [#g666594c] +
-PWM8のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ +
-GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM8CLOCK (uint8_t clock); +
--パラメータ +
---uint8_t '''clock''' +
-~ベースクロックを0~4で選択。 +
-~_UD_PWM_CLOCK_24M  (0:24MHz)~ +
-_UD_PWM_CLOCK_6M    (1:6MHz)~ +
-_UD_PWM_CLOCK_1500K (2:1.5MHz)~ +
-_UD_PWM_CLOCK_375K  (3:375kHz)~ +
-_UD_PWM_CLOCK_46K  (4:46.875kHz) +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // PWM8のベースクロック24Mに設定します。 +
- UD3_SET_PWM8CLOCK (_UD_PWM_CLOCK_24M); +
- +
-***UD3_SET_PWM8CYCLE [#pf67c2d8] +
-PWM8の周期を設定する。~ +
-GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM8CYCLE (uint16_t cycle); +
--パラメータ +
---uint16_t '''cycle''' +
-~周期を1~65535で設定。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
--使用例 +
- // PWM8の周期を設定します。 +
- UD3_SET_PWM8CYCLE (5000); +
- +
-***UD3_SET_PWM8DUTY [#s1513f14] +
-PWM8のDUTYを設定する。~ +
-GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM8DUTY (uint16_t duty); +
--パラメータ +
---uint16_t '''duty''' +
-~デューティーを0~65535で設定。PWMはDUTY/CYCLEの比で出力される。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
-CYCLEで設定された周期値を越えて設定されている場合に1が返され、CYCLE値でクリップされる。 +
--使用例 +
- // PWM8のDUTYを設定します。 +
- UD3_SET_PWM8DUTY (5000); +
- +
-***UD3_SET_PWM9CLOCK [#ae26f679] +
-PWM9のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ +
-GPIO9を[[UD3_CFG_GPIO9>#j90d8ac4]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM9CLOCK (uint8_t clock); +
--パラメータ +
---uint8_t '''clock''' +
-~ベースクロックを0~4で選択。 +
-~_UD_PWM_CLOCK_24M  (0:24MHz)~ +
-_UD_PWM_CLOCK_6M    (1:6MHz)~ +
-_UD_PWM_CLOCK_1500K (2:1.5MHz)~ +
-_UD_PWM_CLOCK_375K  (3:375kHz)~ +
-_UD_PWM_CLOCK_46K  (4:46.875kHz) +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // PWM8のベースクロック24Mに設定します。 +
- UD3_SET_PWM9CLOCK (_UD_PWM_CLOCK_24M); +
- +
-***UD3_SET_PWM9CYCLE [#sae67585] +
-PWM9の周期を設定する。~ +
-GPIO9を[[UD3_CFG_GPIO9>#j90d8ac4]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM9CYCLE (uint16_t cycle); +
--パラメータ +
---uint16_t '''cycle''' +
-~周期を1~65535で設定。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
--使用例 +
- // PWM9の周期を設定します。 +
- UD3_SET_PWM9CYCLE (5000); +
- +
-***UD3_SET_PWM9DUTY [#pae41f19] +
-PWM9のDUTYを設定する。~ +
-GPIO9を[[UD3_CFG_GPIO9>#j90d8ac4]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM9DUTY (uint16_ duty); +
--パラメータ +
---uint16_t '''duty''' +
-~デューティーを0~65535で設定。PWMはDUTY/CYCLEの比で出力される。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
-CYCLEで設定された周期値を越えて設定されている場合に1が返され、CYCLE値でクリップされる。 +
--使用例 +
- // PWM9のDUTYを設定します。 +
- UD3_SET_PWM9DUTY (5000); +
- +
-***UD3_SET_PWM10CLOCK [#cd6005d8] +
-PWM10のPWM出力及びPWM幅計測用ベースクロックを設定する。PWMは本クロックを基準に16bitカウンタとして機能する。~ +
-GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM10CLOCK (uint8_t clock); +
--パラメータ +
---uint8_t '''clock''' +
-~ベースクロックを0~4で選択。 +
-~_UD_PWM_CLOCK_24M  (0:24MHz)~ +
-_UD_PWM_CLOCK_6M    (1:6MHz)~ +
-_UD_PWM_CLOCK_1500K (2:1.5MHz)~ +
-_UD_PWM_CLOCK_375K  (3:375kHz)~ +
-_UD_PWM_CLOCK_46K  (4:46.875kHz) +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。 +
--使用例 +
- // PWM10のベースクロック24Mに設定します。 +
- UD3_SET_PWM10CLOCK (_UD_PWM_CLOCK_24M); +
- +
-***UD3_SET_PWM10CYCLE [#nefca4e0] +
-PWM10の周期を設定する。~ +
-GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM10CYCLE (uint16_t cycle); +
--パラメータ +
---uint16_t '''cycle''' +
-~周期を1~65535で設定。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
--使用例 +
- // PWM10の周期を設定します。 +
- UD3_SET_PWM10CYCLE (5000); +
- +
-***UD3_SET_PWM10DUTY [#a36b0abc] +
-PWM10のDUTYを設定する。~ +
-GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMに設定する必要がある。 +
- int UD3_SET_PWM10DUTY (uint16_t duty); +
--パラメータ +
---uint16_t '''duty''' +
-~デューティーを0~65535で設定。PWMはDUTY/CYCLEの比で出力される。 +
--戻り値 +
-~成功すると0 、パラメータエラーがあった場合は-1が返される。~ +
-CYCLEで設定された周期値を越えて設定されている場合に1が返され、CYCLE値でクリップされる。 +
--使用例 +
- // PWM10のDUTYを設定します。 +
- UD3_SET_PWM10DUTY (5000); +
- +
-***UD3_MEASURE_STICKPOS [#w3c149c4] +
-ラジコン用プロポからの信号をモータのパワーに合わせるための調整を行う。調整値は不揮発メモリに保存され、以後UD3_RC_MOTOR等で内部的に使用される。~ +
-予め[[UD3_CFG_GPIO8>#u201f4af]],[[UD3_CFG_GP​IO9>#j90d8ac4]],[[UD3_CFG_GPIO10>#d2dd2f​39]]でGPIO_PWM_CAPに設定する必要がある。 +
-~本APIが実行されると以下の手順で調整操作を行う。 +
-+UD3_MEASURE_STICKPOSがコールされるとLED1が高速で点滅する。~ +
-+プロポのスティックから手を離した状態(中立位置)でPB1を押し続ける。PB1の押下中はブザーが鳴り続け、数秒押し続けた後PB1を離す(この間に中立位置の計測が行われる)~ +
-+プロポのスティックをそれぞれ上下ないし左右の端まで移動させる。何度か移動させるうちにランダムだったブザーの音程がスティックの角度に連動して変化するようになる。~ +
-+スティックの角度に応じてなめらかに音階が変化するようになったらPB1を押す。~ +
-+成功した「明るいメロディー」か、失敗した「暗いメロディー」が鳴ったら調整終了し、調整値が不揮発メモリに保存される。 +
- bool UD3_MEASURE_STICKPOS (uint8_t pos1, uint8_t pos2); +
--パラメータ +
---uint8_t '''pos1''' +
-~スティック中立時の不感帯幅を0~50[%]で設定。 +
---uint8_t '''pos2''' +
-~スティック両端時の不感帯幅を0~50[%]で設定。 +
--戻り値 +
-~bool +
-~true 調整が成功した場合に返される。~ +
-false 調整が失敗した場合に返される。 +
--使用例 +
- include <ud3.h> +
- +
- UD3_INITIALIZE () { +
-   // GPIO8,9をパルス幅計測モードに +
-   UD3_CFG_GPIO8 (GPIO_PWM_CAP); +
-   UD3_CFG_GPIO9 (GPIO_PWM_CAP); +
-   // モータの駆動モード設定 +
-   UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); +
-   UD3_SET_M2DRIVEMODE (_UD_MOTOR_DRIVE); +
- +
-   // モータ駆動許可 +
-   UD3_SET_MOTORENABLE (true); +
- +
-   UD3_ACTIVE_TASK (1); +
- } +
- +
- UD3_TASK1 () { +
-   // プロポの調整 +
-   UD3_MEASURE_STICKPOS (10, 10); +
-   while (1) { +
-     // 調整値を元にモータを駆動 +
-     UD3_RC_MOTOR (0, 1); +
-   } +
-  } +
- +
-***UD3_RC_MOTOR [#rf1dfc65] +
-UD3_MEASURE_STICKPOSにて調整されたラジコン用プロポの受信器から出力されるパルスを元にM1とM2の駆動パワーに割り当てる。 +
- void UD3_RC_MOTOR (uint8_t rc1, uint8_trc2); +
--パラメータ +
---uint8_t '''rc1''' +
-~M1に割り当てるチャネル +
-~0  PWM8(GPIO8)~ +
-1  PWM9(GPIO9)~ +
-2  PWM10(GPIO10) +
---uint8_t '''rc2''' +
-~M2に割り当てるチャネル +
-~0  PWM8(GPIO8)~ +
-1  PWM9(GPIO9)~ +
-2  PWM10(GPIO10) +
--戻り値 +
-~なし +
--使用例 +
- include <ud3.h> +
- +
- UD3_INITIALIZE () { +
-   // GPIO8,9をパルス幅計測モードに +
-   UD3_CFG_GPIO8 (GPIO_PWM_CAP); +
-   UD3_CFG_GPIO9 (GPIO_PWM_CAP); +
-   // モータの駆動モード設定 +
-   UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); +
-   UD3_SET_M2DRIVEMODE (_UD_MOTOR_DRIVE); +
- +
-   // モータ駆動許可 +
-   UD3_SET_MOTORENABLE (true); +
- +
-   UD3_ACTIVE_TASK (1); +
- } +
- +
- UD3_TASK1 () { +
-   // プロポの調整 +
-   UD3_MEASURE_STICKPOS (10, 10); +
-   while (1) { +
-     // 調整値を元にGPIO8をM1,GPIO9をM2に割り当てて運転 +
-     UD3_RC_MOTOR (0, 1); +
-   } +
-  } +
- +
-***UD3_GET_ELAPSEDTIME [#lf9e26fd] +
-アプリケーション起動時からの経過時間をミリ秒単位で取得。 +
- uint32_t UD3_GET_ELAPSEDTIME (void); +
--パラメータ +
-~なし +
--戻り値 +
-~uint32_t 経過時間 +
--使用例 +
- // 経過時間を取得します。 +
- uint32_t tm = UD3_GET_ELAPSEDTIME (); +
- +
-***UD3_GET_GPIOINPUT [#qdba2bbc] +
-GPIOの端子状態を取得。入力に使用するGPIOを[[UD3_CFG_GPIO0>#c10e9d62]]~[[UD3_CFG_GPIO10>#d2dd2f39]]で設定する必要がある。 +
- uint16_t UD3_GET_GPIOINPUT (void); +
--パラメータ +
-~なし +
--戻り値 +
-~uint16_t GPIOの入力値~ +
-戻り値の各ビットは以下のGPIOポートに割り当てられる。 +
-|=BIT|=15|=14|=13|=12|=11|=10|= 9|=8|=7|=6|=5|=4|=3|=2|=1|=0| +
-|=GPIO|=- |=- |=- |=- |=- |=10  |=9  |=8  |=7  |=6  |=5  |=4  |=3  |=2  |=1  |=0  | +
--使用例 +
- // GPIOの入力値 +
- uint16_t input = UD3_GET_GPIOINPUT (); +
- +
-***UD3_GET_PUSHBUTTON1 [#xe62248e] +
-PB1の状態を取得。 +
- bool UD3_GET_PUSHBUTTON1 (void); +
--パラメータ +
-~なし +
--戻り値 +
-~bool PB1の状態 +
-~true  押されている~ +
-false 押されていない +
--使用例 +
- // PB1が押されている場合にLEDを点灯させます。 +
- UD3_SET_LED (UD3_GET_PUSHBUTTON1 ()); +
- +
-***UD3_GET_PUSHBUTTON2 [#t4c165bb] +
-PB2の状態を取得。 +
- bool UD3_GET_PUSHBUTTON2 (void); +
--パラメータ +
-~なし +
--戻り値 +
-~bool PB2の状態 +
-~true  押されている~ +
-false 押されていない +
--使用例 +
- // PB2が押されている場合にLEDを点灯させます。 +
- UD3_SET_LED (UD3_GET_PUSHBUTTON2 ()); +
- +
-***UD3_GET_DIPSWICH [#o08f8c1c] +
-DIP1の状態を取得。 +
- uint8_t UD3_GET_DIPSWICH (void); +
--パラメータ +
-~なし +
--戻り値 +
-~uint8_t DIP1に設定された値(0x00~0x0f) +
--使用例 +
- // DIP1の状態を取得します。 +
- uint8_t sw = UD3_GET_DIPSWICH (); +
- +
-***UD3_GET_ADC [#f0162d6a] +
-GPIO0~7に入力された電圧値を取得する。~ +
-ADCに使用するGPIOを[[UD3_CFG_GPIO0>#c10e9d62]]~[[UD3_CFG_GPIO7>#c82b29f3]]で設定する必要がある。 +
- uint16_t UD3_GET_ADC (uint8_t ch); +
--パラメータ +
---uint8_t '''ch''' +
-~0~7(GPIO0~GPIO8)のチャネル番号 +
--戻り値 +
-~uint16_t 指定したチャネルの0(0V)~1023(3.3V)のアナログ値 +
--使用例 +
- // GPIO0に入力された電圧を取得します。 +
- adc = UD3_GET_ADC (0); +
- +
-***UD3_GET_PWM8DUTY [#td3856a0] +
-PWM8のキャプチャしたパルス幅を取得する。~ +
-GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWM_CAPに設定する必要がある。 +
- uint16_t UD3_GET_PWM8DUTY (void); +
--パラメータ +
-~なし +
--戻り値 +
-~uint16_t パルス幅 +
--使用例 +
- // PWM8のパルス幅を取得します。 +
- pulse = UD3_GET_PWM8DUTY (); +
- +
-***UD3_GET_PWM9DUTY [#x328a466] +
-PWM9のキャプチャしたパルス幅を取得する。~ +
-GPIO9を[[UD3_CFG_GPIO9>#j90d8ac4]]でGPIO_PWM_CAPに設定する必要がある。 +
- uint16_t UD3_GET_PWM9DUTY (void); +
--パラメータ +
-~なし +
--戻り値 +
-~uint16_t パルス幅 +
--使用例 +
- // PWM9のパルス幅を取得します。 +
- pulse = UD3_GET_PWM9DUTY (); +
- +
-***UD3_GET_PWM10DUTY [#kf3fddcb] +
-PWM10のキャプチャしたパルス幅を取得する。~ +
-GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAPに設定する必要がある。 +
- uint16_t UD3_GET_PWM10DUTY (void); +
--パラメータ +
-~なし +
--戻り値 +
-~uint16_t パルス幅 +
--使用例 +
- // PWM10のパルス幅を取得します。 +
- pulse = UD3_GET_PWM10DUTY (); +
- +
-***UD3_GET_RCPOS [#q1f997f7] +
-指定したチャネルのラジコンプロポのスティックの値を取得する。~ +
-この取得した値は、[[UD3_MEASURE_STICKPOS>#w3c149c4]]で調整された値となる。 +
- int16_t UD3_GET_RCPOS (uint8_t ch); +
--パラメータ +
---uint8_t '''ch''' +
-~チャネルを指定する。 +
-~0: PWM8(GPIO8)~ +
-1:PWM9(GPIO9)~ +
-2:PWM10(GPIO10) +
--戻り値 +
-~int16_t ラジコンプロポのスティックの位置 +
--使用例 +
- // PWM8に接続されているラジコンプロポのスティックの位置を取得します。 +
- pos = UD3_GET_RCPOS (0);+
**サンプルプログラム [#kf8170aa] **サンプルプログラム [#kf8170aa]


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom