15: 2011-07-22 (金) 20:07:05 takaboo |
16: 2011-08-03 (水) 16:49:27 takaboo |
| // 動作環境設定 | | // 動作環境設定 |
| // GPIO8/9/10をPWMキャプチャモードに設定 | | // GPIO8/9/10をPWMキャプチャモードに設定 |
- | UD3_CFG_GPIO8 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO8 (GPIO_PWM_CAP_PULLUP_OFF); |
- | UD3_CFG_GPIO9 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO9 (GPIO_PWM_CAP_PULLUP_OFF); |
- | UD3_CFG_GPIO10 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO10 (GPIO_PWM_CAP_PULLUP_OFF); |
| // モータの設定 | | // モータの設定 |
| UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); | | UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); |
| } | | } |
| | | |
- | ****UD3_CFG_GPIO8 [#n31eda6b] | + | ****UD3_CFG_GPIO8 (update)[#n31eda6b] |
| GPIO8の端子機能を設定する。 | | GPIO8の端子機能を設定する。 |
| int UD3_CFG_GPIO8 (TGPIOMode conf); | | int UD3_CFG_GPIO8 (TGPIOMode conf); |
| 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ | | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
| 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ | | 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ |
- | 5: GPIO_PWM_CAP (パルス幅計測用入力かつプルアップON)~ | + | 5: GPIO_PWM_CAP_PULLUP_OFF (パルス幅計測用入力かつプルアップOFF)~ |
- | 6: GPIO_PWM (PWM出力) | + | 6: GPIO_PWM_CAP_PULLUP_ON (パルス幅計測用入力かつプルアップON)~ |
| + | 7: GPIO_PWM (PWM出力) |
| ~デフォルトはGPIO_IN_PULLUP_OFF。 | | ~デフォルトはGPIO_IN_PULLUP_OFF。 |
| -戻り値 | | -戻り値 |
| | | |
| int main (void) { | | int main (void) { |
- | { | + | // PWMキャプチャモードでプルアップOFFに設定 |
- | // PWMキャプチャモードに設定 | + | UD3_CFG_GPIO8 (GPIO_PWM_CAP_PULLUP_OFF); |
- | UD3_CFG_GPIO8 (GPIO_PWM_CAP); | + | |
| } | | } |
| | | |
- | ****UD3_CFG_GPIO9 [#u201f4af] | + | ****UD3_CFG_GPIO9 (update)[#u201f4af] |
| GPIO9の端子機能を設定する。 | | GPIO9の端子機能を設定する。 |
| int UD3_CFG_GPIO9 (TGPIOMode conf); | | int UD3_CFG_GPIO9 (TGPIOMode conf); |
| 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ | | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
| 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ | | 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ |
- | 5: GPIO_PWM_CAP (パルス幅計測用入力かつプルアップON)~ | + | 5: GPIO_PWM_CAP_PULLUP_OFF (パルス幅計測用入力かつプルアップOFF)~ |
- | 6: GPIO_PWM (PWM出力) | + | 6: GPIO_PWM_CAP_PULLUP_ON (パルス幅計測用入力かつプルアップON)~ |
| + | 7: GPIO_PWM (PWM出力) |
| ~デフォルトはGPIO_IN_PULLUP_OFF。 | | ~デフォルトはGPIO_IN_PULLUP_OFF。 |
| -戻り値 | | -戻り値 |
| | | |
| int main (void) { | | int main (void) { |
- | { | |
| // パルス幅計測モードに設定 | | // パルス幅計測モードに設定 |
- | UD3_CFG_GPIO9 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO9 (GPIO_PWM_CAP_PULLUP_OFF); |
| } | | } |
| | | |
- | ****UD3_CFG_GPIO10 [#d2dd2f39] | + | ****UD3_CFG_GPIO10 (update)[#d2dd2f39] |
| GPIO10の端子機能を設定する。 | | GPIO10の端子機能を設定する。 |
| int UD3_CFG_GPIO10 (TGPIOMode conf); | | int UD3_CFG_GPIO10 (TGPIOMode conf); |
| 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ | | 3: GPIO_OUT_OPENDRAIN (オープンドレイン出力)~ |
| 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ | | 4: GPIO_OUT_PUSHPULL (プッシュプル出力)~ |
- | 5: GPIO_PWM_CAP (パルス幅計測用入力かつプルアップON)~ | + | 5: GPIO_PWM_CAP_PULLUP_OFF (パルス幅計測用入力かつプルアップOFF)~ |
- | 6: GPIO_PWM (PWM出力) | + | 6: GPIO_PWM_CAP_PULLUP_ON (パルス幅計測用入力かつプルアップON)~ |
| + | 7: GPIO_PWM (PWM出力) |
| ~デフォルトはGPIO_IN_PULLUP_OFF。 | | ~デフォルトはGPIO_IN_PULLUP_OFF。 |
| -戻り値 | | -戻り値 |
| | | |
| int main (void) { | | int main (void) { |
- | { | |
| // パルス幅計測モードに設定 | | // パルス幅計測モードに設定 |
- | UD3_CFG_GPIO10 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO10 (GPIO_PWM_CAP_PULLUP_OFF); |
| } | | } |
| | | |
| ****UD3_SET_PWM8CLOCK (update)[#g666594c] | | ****UD3_SET_PWM8CLOCK (update)[#g666594c] |
| PWM8のPWM出力及びPWM幅計測用ベースクロックを設定する。PWM出力及びPWM幅計測は本クロックを基準に最大16bitカウンタとして機能する。~ | | PWM8のPWM出力及びPWM幅計測用ベースクロックを設定する。PWM出力及びPWM幅計測は本クロックを基準に最大16bitカウンタとして機能する。~ |
- | GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMないしGPIO_PWM_CAPに設定する必要がある。 | + | GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWMないしGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| int UD3_SET_PWM8CLOCK (uint8_t clock); | | int UD3_SET_PWM8CLOCK (uint8_t clock); |
| -パラメータ | | -パラメータ |
| ****UD3_SET_PWM9CLOCK (update)[#ae26f679] | | ****UD3_SET_PWM9CLOCK (update)[#ae26f679] |
| PWM9のPWM出力及びPWM幅計測用ベースクロックを設定する。PWM出力及びPWM幅計測は本クロックを基準に最大16bitカウンタとして機能する。~ | | PWM9のPWM出力及びPWM幅計測用ベースクロックを設定する。PWM出力及びPWM幅計測は本クロックを基準に最大16bitカウンタとして機能する。~ |
- | GPIO9を[[UD3_CFG_GPIO9>#u201f4af]]でGPIO_PWMないしGPIO_PWM_CAPに設定する必要がある。 | + | GPIO9を[[UD3_CFG_GPIO9>#u201f4af]]でGPIO_PWMないしGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| int UD3_SET_PWM9CLOCK (uint8_t clock); | | int UD3_SET_PWM9CLOCK (uint8_t clock); |
| -パラメータ | | -パラメータ |
| ****UD3_SET_PWM10CLOCK (update)[#cd6005d8] | | ****UD3_SET_PWM10CLOCK (update)[#cd6005d8] |
| PWM10のPWM出力及びPWM幅計測用ベースクロックを設定する。PWM出力及びPWM幅計測は本クロックを基準に最大16bitカウンタとして機能する。~ | | PWM10のPWM出力及びPWM幅計測用ベースクロックを設定する。PWM出力及びPWM幅計測は本クロックを基準に最大16bitカウンタとして機能する。~ |
- | GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMないしGPIO_PWM_CAPに設定する必要がある。 | + | GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWMないしGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| int UD3_SET_PWM10CLOCK (uint8_t clock); | | int UD3_SET_PWM10CLOCK (uint8_t clock); |
| -パラメータ | | -パラメータ |
| ****UD3_GET_PWM8DUTY [#td3856a0] | | ****UD3_GET_PWM8DUTY [#td3856a0] |
| PWM8のキャプチャしたパルス幅を取得する。~ | | PWM8のキャプチャしたパルス幅を取得する。~ |
- | GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWM_CAPに設定する必要がある。 | + | GPIO8を[[UD3_CFG_GPIO8>#u201f4af]]でGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| uint16_t UD3_GET_PWM8DUTY (void); | | uint16_t UD3_GET_PWM8DUTY (void); |
| -パラメータ | | -パラメータ |
| ****UD3_GET_PWM9DUTY [#x328a466] | | ****UD3_GET_PWM9DUTY [#x328a466] |
| PWM9のキャプチャしたパルス幅を取得する。~ | | PWM9のキャプチャしたパルス幅を取得する。~ |
- | GPIO9を[[UD3_CFG_GPIO9>#j90d8ac4]]でGPIO_PWM_CAPに設定する必要がある。 | + | GPIO9を[[UD3_CFG_GPIO9>#j90d8ac4]]でGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| uint16_t UD3_GET_PWM9DUTY (void); | | uint16_t UD3_GET_PWM9DUTY (void); |
| -パラメータ | | -パラメータ |
| ****UD3_GET_PWM10DUTY [#kf3fddcb] | | ****UD3_GET_PWM10DUTY [#kf3fddcb] |
| PWM10のキャプチャしたパルス幅を取得する。~ | | PWM10のキャプチャしたパルス幅を取得する。~ |
- | GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAPに設定する必要がある。 | + | GPIO10を[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| uint16_t UD3_GET_PWM10DUTY (void); | | uint16_t UD3_GET_PWM10DUTY (void); |
| -パラメータ | | -パラメータ |
| 不感帯はスティックの中立及び最大・最少位置にそれぞれ設けられ、中立位置と最大・最少位置を正確に計測した後に反映される。スティックの位置と不感帯、デューティーとして指令される値の相関は以下の図に示す。~ | | 不感帯はスティックの中立及び最大・最少位置にそれぞれ設けられ、中立位置と最大・最少位置を正確に計測した後に反映される。スティックの位置と不感帯、デューティーとして指令される値の相関は以下の図に示す。~ |
| #ref(ud3_stick2duty.png,100%) | | #ref(ud3_stick2duty.png,100%) |
- | 予め[[UD3_CFG_GPIO8>#u201f4af]],[[UD3_CFG_GPIO9>#j90d8ac4]],[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAPに設定する必要がある。 | + | 予め[[UD3_CFG_GPIO8>#u201f4af]],[[UD3_CFG_GPIO9>#j90d8ac4]],[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| ~本APIが実行されると以下の手順で調整操作を行う。 | | ~本APIが実行されると以下の手順で調整操作を行う。 |
| +UD3_MEASURE_STICKPOSがコールされるとピロリと音が鳴り、計測モードに遷移した事を知らせる。 | | +UD3_MEASURE_STICKPOSがコールされるとピロリと音が鳴り、計測モードに遷移した事を知らせる。 |
| int main (void) { | | int main (void) { |
| // GPIO8,9をパルス幅計測モードに | | // GPIO8,9をパルス幅計測モードに |
- | UD3_CFG_GPIO8 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO8 (GPIO_PWM_CAP_PULLUP_OFF); |
- | UD3_CFG_GPIO9 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO9 (GPIO_PWM_CAP_PULLUP_OFF); |
| // モータの駆動モード設定 | | // モータの駆動モード設定 |
| UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); | | UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); |
| 指定したチャネルのラジコンプロポのスティックの値を取得する。~ | | 指定したチャネルのラジコンプロポのスティックの値を取得する。~ |
| この取得した値は、[[UD3_MEASURE_STICKPOS>#w3c149c4]]で調整された値となる。~ | | この取得した値は、[[UD3_MEASURE_STICKPOS>#w3c149c4]]で調整された値となる。~ |
- | 予め[[UD3_CFG_GPIO8>#u201f4af]],[[UD3_CFG_GPIO9>#j90d8ac4]],[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAPに設定する必要がある。 | + | 予め[[UD3_CFG_GPIO8>#u201f4af]],[[UD3_CFG_GPIO9>#j90d8ac4]],[[UD3_CFG_GPIO10>#d2dd2f39]]でGPIO_PWM_CAP_PULLUP_OFFないしGPIO_PWM_CAP_PULLUP_ONに設定する必要がある。 |
| int16_t UD3_GET_RCPOS (uint8_t ch); | | int16_t UD3_GET_RCPOS (uint8_t ch); |
| -パラメータ | | -パラメータ |
| int main (void) { | | int main (void) { |
| // GPIO8,9をパルス幅計測モードに | | // GPIO8,9をパルス幅計測モードに |
- | UD3_CFG_GPIO8 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO8 (GPIO_PWM_CAP_PULLUP_OFF); |
- | UD3_CFG_GPIO9 (GPIO_PWM_CAP); | + | UD3_CFG_GPIO9 (GPIO_PWM_CAP_PULLUP_OFF); |
| // モータの駆動モード設定 | | // モータの駆動モード設定 |
| UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); | | UD3_SET_M1DRIVEMODE (_UD_MOTOR_DRIVE); |
| **サンプルプログラム [#kf8170aa] | | **サンプルプログラム [#kf8170aa] |
| APIを使用したいくつかのサンプルプログラムを用意しました。以下よりダウンロードして解凍した上でご利用ください。詳細はコメントおよびAPIのドキュメントを参考に読み解いてください。 | | APIを使用したいくつかのサンプルプログラムを用意しました。以下よりダウンロードして解凍した上でご利用ください。詳細はコメントおよびAPIのドキュメントを参考に読み解いてください。 |
| + | |
| + | -UD3用サンプルプログラム Ver1.5 (2011/8/3)~ |
| + | #ref(http://www.besttechnology.co.jp/download/UD3_SMPL1.5.zip) |
| + | --更新履歴~ |
| + | GCC Developer Lite 2.4.0.13r3以降のAPI追加・変更に伴う修正 |
| | | |
| -UD3用サンプルプログラム Ver1.4 (2011/7/22)~ | | -UD3用サンプルプログラム Ver1.4 (2011/7/22)~ |
| #ref(http://www.besttechnology.co.jp/download/UD3_SMPL1.4.zip) | | #ref(http://www.besttechnology.co.jp/download/UD3_SMPL1.4.zip) |
| --更新履歴~ | | --更新履歴~ |
- | GCC Developer Lite 2.4.0.16以降のAPI追加・変更に伴う追加・修正 | + | GCC Developer Lite 2.4.0.13以降のAPI追加・変更に伴う追加・修正 |
| | | |
| -UD3用サンプルプログラム Ver1.3 (2011/4/6)~ | | -UD3用サンプルプログラム Ver1.3 (2011/4/6)~ |