01; if (duty <= 0.3) duty = 1; pwm_set_frequency(PWM_DEVICE_0, PWM_CHANNEL_0, 20000, duty); //duty比を変更 } int main(void) { fpioa_set_function(32, FUNC_TIMER0_TOGGLE1); //LED_W[pin32]をPWMのデバイス0・チャネル0に設定 plic_init(); pwm_init(PWM_DEVICE_0); pwm...
この状態で OCR2B に0 から 255 の値をセットすることで PWM の duty (タイマが1周する間にどれくらい出力矩形を High にするか) を変更して出力波形を作ります。SayKana コマンドでは 8kHz のリニア PCM が作られるので、OCR2B の値を 8kHz で更新すれば音が出ます。8kHz は Arduino ...