nrf51822のPwm関数



Pwm Function Nrf51822



pwm関数を追加し、エラーをコンパイルします

.. .. .. main.c(64):エラー:#20:識別子 'TIMER0_ENABLED'が未定義です
PP_PWM_INSTANCE(PWM1,1)// TIMER1を使用してインスタンス「PWM1」を作成します。



公式SDK:nRF5_SDK_12.3.0_d7731ad examples Peripheral pwm_library pca10028

タブ設定を変更するためのチップモデルに応じた公式のデフォルトnrf51422:



プロジェクトバーの次のファイルに注意してください。



main.cの関数実装コード:

#include'app_pwm.h '//ヘッダーファイルを追加

APP_PWM_INSTANCE(PWM1,1)//// TIMER1を使用してインスタンス「PWM1」を作成します

static volatile bool ready_flag // PWMステータスを示すフラグ。

void pwm_ready_callback(uint32_t pwm_id)// PWMコールバック関数
{{
ready_flag = true
}

int main(void)
{{

App_pwm_config_t pwm1_cfg = APP_PWM_DEFAULT_CONFIG_1CH(50L、6)/ / 50usサイクル、20KHz(1 / 50MHz)を構成

/ * 2番目のチャネルの極性を切り替えます。 * /
pwm1_cfg.pin_polarity [1] = APP_PWM_POLARITY_ACTIVE_HIGH

/ * PWMを初期化して有効にします。 * /
err_code = app_pwm_init(&PWM1、&pwm1_cfg、pwm_ready_callback)
APP_ERROR_CHECK(err_code)
app_pwm_enable(&PWM1)// pwmを有効にする

app_pwm_channel_duty_set(&PWM1、0、80)// pwmのデューティサイクルを設定します

}

コンパイル時に、エラープロンプトはタイマー0を定義しません。理由は、構成ファイルのタイマー有効マクロが開いておらず、使用するタイマーもオンにする必要があるためです。

コンパイル者:

0エラー、0警告。完璧です! ! ! ! !