16bit resolution PWM wave player with SD card, super lite version.
Dependencies: mbed DirectSPI FastPWM
Supported boards (confirmed):
Nucleo-F030R8
Nucleo-L152RE
Nucleo-F401RE
Nucleo-F411RE
Only compilation is OK (unchecked, but may work):
Nucleo-L073RZ
Nucleo-F334R8
Nucleo-F303RE
Nucleo-F429ZI
Nucleo-F446RE
Nucleo-F446ZE
Nucleo-L476RG
Supported SD card:
SDSC/SDHC card,
FAT16 and FAT32.
(1) At first, format SD card using SD Card Formatter
https://www.sdcard.org/downloads/formatter_4/index.html
(2) Copy PCM wav files to the SD card.
Supported file:
PCM wave file that have file extension ".wav" on root directory.
16bit/8bit, fs(sampling rate)=32kHz,44.1kHz,48kHz.
Stereo/Mono.
Hardware setting:
Refer to the file port_setting.txt
PWM output port:
Left upper(Hi) PWM 8bit out: PB_5 (TM3_CH2)
Right upper(Hi) PWM 8bit out: PB4 (TM3_CH1)
Left lower(Low) PWM 8bit out: PC_9 (TM3_CH4)
Right lower(Low) PWM 8bit out: PC_8 (TM3_CH3)
USER_BUTTON: PC_13(default button)
Next song: One click in Play mode.
Pause : Push long time .
Play : One click from Pause.
Revision 21:dc161a192ba7, committed 2020-10-09
- Comitter:
- mimi3
- Date:
- Fri Oct 09 07:47:36 2020 +0900
- Parent:
- 20:c7066a530b1f
- Commit message:
- trivial change
Changed in this revision
wave_player_main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r c7066a530b1f -r dc161a192ba7 wave_player_main.cpp --- a/wave_player_main.cpp Fri Oct 09 07:38:47 2020 +0900 +++ b/wave_player_main.cpp Fri Oct 09 07:47:36 2020 +0900 @@ -144,7 +144,7 @@ #endif sbit btn_pause_prev = false; - #define fbtn_next_song_on btn_short_on + #define fbtn_next_song_on btn_short_on #define btn_pause_on btn_long_on #define btn_power_off_on btn_long_on2 @@ -164,6 +164,7 @@ //; wait 10msec Ticker flag while ( !isTickTimer_IF() ) { if( ldwSongFileSectors == 0 ){ //; found end of file + fbtn_next_song_on = true; break; //promptly exit and prepare next song } #if HAVE_LED_IND_PWM @@ -184,7 +185,7 @@ /*------------------- Next song and start -------------------*/ - if ( ( ldwSongFileSectors == 0 ) | fbtn_next_song_on ){ + if ( fbtn_next_song_on ){ pwm_period_timer_music_stop(); fbtn_next_song_on = false; sd_stop_read(); @@ -288,9 +289,9 @@ -------------------*/ if( fbtn_next_song_on){ if( !fPlaying){ // ; if during pause - fPlaying = true ; //release pause + fPlaying = true ; //release pause fbtn_next_song_on = false; - btn_pause_on = false; + btn_pause_on = false; pwm_period_timer_music_start(); } }