はじめまして、koheiと申します。
現在78k0r(PS+)で構成された音声プログラムをRL78(CS+)に置き換える作業を行っています。
ADPCM伸長(decode)処理について質問があります。
78k0rではNECから提供された adpcm_l32_dec()関数を使いPWMのデータを取得していました。
この関数はlibrary (adpcmsp.lib)になっており CS+では認識されません。(エラーになる)
そこでRL78ではルネサスが提供している M3S-S2-Tinyの
R_adpcm_refreshDec()
R_adpcm_decode()
に置き換えようと思っています
従来は adpcm_l32_dec() で アナログ、PWMの選択があり PWM出力を利用していました
今回のR_adpcm_decode()の出力はPWMでしょうか?
もしアナログの場合はPWMにする方法はありますか?
その他 何か注意点があれば教えていただければ大変助かります
以上、ご教授のほどよろしくお願いいたします
koheiさん、こんにちは。NoMaYと申します。製品ページを見てみたところ、以下の記載がありましたので、PWM出力版は用意されている、のだと思います。詳細は、サンプルプログラムをダウンロードして中を見てみると、もっと分かるかと思います。もし、そういう問合せでは無いのでしたら、またその旨リプライして頂ければと、思います。(すみません、使ったことは無いですけれども、サンプルプログラムのソースファイルを見てみようかと思うのです。)RL78ファミリ用 音声録音・再生システム [M3S-S2-Tiny]www.renesas.com/software-tool/sound-playbackcompression-system-m3s-s2-tiny-rl78-family「音声再生用サンプルソフトウェア(CS+、e2 studioのプロジェクト形式またはHigh-performance Embedded Workshopワークスペース形式のPWM出力用サンプルドライバを含むソースファイル)」
NoMaYさん 返信くださりありがとうございます。
仰る通り、サンプルプログラムにPWMを設定する部分があると思っていました。
しかしその設定をする部分を見つけることができず今に至っている状況です。
大変恐縮ですがソースファイルを確認頂けると幸いです。
koheiさん、こんにちは。NoMaYです。切り替えの仕組みは、これではないかな、と思いましたけれども、どうでしょう。an_r20an0194jj0102_rl78_s2_sound/workspace/sample/rl78g14_board/CS+ for CC/src/sample/r_s2_peripheral_if.h
#if (SOUND_OUTPUT_MODULE == SOUND_DA)#define SOUND_MODULE_INIT decode_da_converter_init#define SOUND_MODULE_START decode_da_converter_start#define SOUND_MODULE_STOP decode_da_converter_stop#define SOUND_MODULE_SLEEP decode_da_converter_sleep#define SOUND_OUTPUT_DATA_SET(value)#define SOUND_OUTPUT_DATA_CNV R_Convert16to8#elif (SOUND_OUTPUT_MODULE == SOUND_PWM)#define SOUND_MODULE_INIT decode_pwm_init#define SOUND_MODULE_START decode_pwm_start#define SOUND_MODULE_STOP decode_pwm_stop#define SOUND_MODULE_SLEEP decode_pwm_sleep#define SOUND_OUTPUT_DATA_SET(value) (TDR03 = value)#define SOUND_OUTPUT_DATA_CNV R_Convert16toPWM#else#error "Please define "SOUND_DA" or "SOUND_PWM" to "SOUND_OUTPUT_MODULE" macro. "#endif
NoMaYさん ご連絡ありがとうございます。
早速確認してみます。
結果は別途報告させてください。
NoMaYさん 返事が大変遅くなりました。
無事PWMにて音声が出力されることを確認できました。
情報の提供ありがとうございました。