From 11a5c142106676d745c0356246521223a6103f47 Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Fri, 23 Oct 2026 13:24:14 +0800 Subject: [PATCH 1/7] =?UTF-8?q?refactor:=20=E7=A4=BA=E4=BE=8B=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=94=B9=E7=94=A8=E5=85=B1=E4=BA=AB=E6=9B=B2=E5=BA=93?= =?UTF-8?q?=E6=92=AD=E6=94=BE=20Never=20Gonna=20Give=20You=20Up?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 buzzer_songs 曲库并加入 Never Gonna Give You Up --- boards/drivers/include/buzzer_songs.h | 202 ++++++++++++++++++ .../DJI_Board_TypeC_general/buzzer/main.cpp | 6 +- 2 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 boards/drivers/include/buzzer_songs.h diff --git a/boards/drivers/include/buzzer_songs.h b/boards/drivers/include/buzzer_songs.h new file mode 100644 index 00000000..8b0d2f30 --- /dev/null +++ b/boards/drivers/include/buzzer_songs.h @@ -0,0 +1,202 @@ +#pragma once + +#include "buzzer.h" + +namespace driver { + namespace songs { + + // Never Gonna Give You Up - Rick Astley. + // 114 BPM; delays in milliseconds. Each pitched note sounds for 90% of its slot. + static constexpr BuzzerNoteDelayed NeverGonnaGiveYouUp[] = { + // Intro + {BuzzerNote::Re2M, 710}, + {BuzzerNote::Silent, 79}, // D5, -4 + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::La6L, 473}, + {BuzzerNote::Silent, 53}, // A4, 4 + + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::Fa4SharpM, 710}, + {BuzzerNote::Silent, 79}, // FS5, -4 + {BuzzerNote::La6M, 117}, + {BuzzerNote::Silent, 14}, // A5, 16 + {BuzzerNote::So5M, 117}, + {BuzzerNote::Silent, 14}, // G5, 16 + {BuzzerNote::Fa4SharpM, 236}, + {BuzzerNote::Silent, 27}, // FS5, 8 + + {BuzzerNote::Re2M, 710}, + {BuzzerNote::Silent, 79}, // D5, -4 + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::La6L, 946}, + {BuzzerNote::Silent, 106}, // A4, 2 + + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 236}, + {BuzzerNote::Silent, 27}, // D5, 8 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + + {BuzzerNote::Re2M, 710}, + {BuzzerNote::Silent, 79}, // D5, -4 + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::La6L, 473}, + {BuzzerNote::Silent, 53}, // A4, 4 + + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::Fa4SharpM, 710}, + {BuzzerNote::Silent, 79}, // FS5, -4 + {BuzzerNote::La6M, 117}, + {BuzzerNote::Silent, 14}, // A5, 16 + {BuzzerNote::So5M, 117}, + {BuzzerNote::Silent, 14}, // G5, 16 + {BuzzerNote::Fa4SharpM, 236}, + {BuzzerNote::Silent, 27}, // FS5, 8 + + {BuzzerNote::Re2M, 710}, + {BuzzerNote::Silent, 79}, // D5, -4 + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::La6L, 946}, + {BuzzerNote::Silent, 106}, // A4, 2 + + // Chorus + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + + {BuzzerNote::Fa4SharpM, 354}, + {BuzzerNote::Silent, 40}, // FS5, -8 + {BuzzerNote::Fa4SharpM, 354}, + {BuzzerNote::Silent, 40}, // FS5, -8 + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + + {BuzzerNote::Mi3M, 354}, + {BuzzerNote::Silent, 40}, // E5, -8 + {BuzzerNote::Mi3M, 354}, + {BuzzerNote::Silent, 40}, // E5, -8 + {BuzzerNote::Re2M, 354}, + {BuzzerNote::Silent, 40}, // D5, -8 + {BuzzerNote::Do1SharpM, 117}, + {BuzzerNote::Silent, 14}, // CS5, 16 + {BuzzerNote::Si7L, 354}, + {BuzzerNote::Silent, 40}, // B4, -8 + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + + {BuzzerNote::Re2M, 473}, + {BuzzerNote::Silent, 53}, // D5, 4 + {BuzzerNote::Mi3M, 236}, + {BuzzerNote::Silent, 27}, // E5, 8 + {BuzzerNote::Do1SharpM, 354}, + {BuzzerNote::Silent, 40}, // CS5, -8 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::La6L, 236}, + {BuzzerNote::Silent, 27}, // A4, 8 + {BuzzerNote::La6L, 236}, + {BuzzerNote::Silent, 27}, // A4, 8 + {BuzzerNote::La6L, 236}, + {BuzzerNote::Silent, 27}, // A4, 8 + + {BuzzerNote::Mi3M, 473}, + {BuzzerNote::Silent, 53}, // E5, 4 + {BuzzerNote::Re2M, 946}, + {BuzzerNote::Silent, 106}, // D5, 2 + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + + {BuzzerNote::Fa4SharpM, 354}, + {BuzzerNote::Silent, 40}, // FS5, -8 + {BuzzerNote::Fa4SharpM, 354}, + {BuzzerNote::Silent, 40}, // FS5, -8 + {BuzzerNote::Mi3M, 710}, + {BuzzerNote::Silent, 79}, // E5, -4 + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + + {BuzzerNote::La6M, 473}, + {BuzzerNote::Silent, 53}, // A5, 4 + {BuzzerNote::Do1SharpM, 236}, + {BuzzerNote::Silent, 27}, // CS5, 8 + {BuzzerNote::Re2M, 354}, + {BuzzerNote::Silent, 40}, // D5, -8 + {BuzzerNote::Do1SharpM, 117}, + {BuzzerNote::Silent, 14}, // CS5, 16 + {BuzzerNote::Si7L, 236}, + {BuzzerNote::Silent, 27}, // B4, 8 + {BuzzerNote::La6L, 117}, + {BuzzerNote::Silent, 14}, // A4, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::Re2M, 117}, + {BuzzerNote::Silent, 14}, // D5, 16 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + + {BuzzerNote::Re2M, 473}, + {BuzzerNote::Silent, 53}, // D5, 4 + {BuzzerNote::Mi3M, 236}, + {BuzzerNote::Silent, 27}, // E5, 8 + {BuzzerNote::Do1SharpM, 354}, + {BuzzerNote::Silent, 40}, // CS5, -8 + {BuzzerNote::Si7L, 117}, + {BuzzerNote::Silent, 14}, // B4, 16 + {BuzzerNote::La6L, 473}, + {BuzzerNote::Silent, 53}, // A4, 4 + {BuzzerNote::La6L, 236}, + {BuzzerNote::Silent, 27}, // A4, 8 + + {BuzzerNote::Mi3M, 473}, + {BuzzerNote::Silent, 53}, // E5, 4 + {BuzzerNote::Re2M, 946}, + {BuzzerNote::Silent, 106}, // D5, 2 + {BuzzerNote::Silent, 526}, // REST, 4 + + {BuzzerNote::Finish, 0}, + }; + + } // namespace songs +} // namespace driver diff --git a/examples/DJI_Board_TypeC_general/buzzer/main.cpp b/examples/DJI_Board_TypeC_general/buzzer/main.cpp index 6fdbcfab..9114e921 100644 --- a/examples/DJI_Board_TypeC_general/buzzer/main.cpp +++ b/examples/DJI_Board_TypeC_general/buzzer/main.cpp @@ -21,6 +21,7 @@ #include "main.h" #include "buzzer.h" +#include "buzzer_songs.h" #include "tim.h" using Note = driver::BuzzerNote; @@ -70,10 +71,7 @@ static bsp::BuzzerNoteDelayed War_Cant_of_Mars[] = { {Note::Finish, 0}, }; */ -static driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - void RM_RTOS_Init(void) { driver::Buzzer buzzer(&htim4, 3, 1000000); - buzzer.SingSong(DJI); - // buzzer.SingSong(War_Cant_of_Mars); + buzzer.SingSong(driver::songs::NeverGonnaGiveYouUp); } From fda0a921b3cf149a4fada461b4820b63e4031400 Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Fri, 23 Oct 2026 13:24:14 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fix:=20SingTone=20=E9=81=87=E5=88=B0=20Sile?= =?UTF-8?q?nt=20=E9=9F=B3=E7=AC=A6=E6=97=B6=E5=85=B3=E9=97=AD=20PWM=20?= =?UTF-8?q?=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/drivers/src/buzzer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/boards/drivers/src/buzzer.cpp b/boards/drivers/src/buzzer.cpp index cf17fe98..7ce14c9b 100644 --- a/boards/drivers/src/buzzer.cpp +++ b/boards/drivers/src/buzzer.cpp @@ -28,6 +28,10 @@ namespace driver { } void Buzzer::SingTone(const BuzzerNote& note) { + if (note == BuzzerNote::Silent) { + Off(); + return; + } if (note != BuzzerNote::Finish) { pwm_.SetFrequency(static_cast(note)); pwm_.SetPulseWidth(1000000 / static_cast(note) / 2); From 203d7a90f21058f081eb0c9c9ff9e1edcf913aef Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Fri, 23 Oct 2026 13:24:14 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=E6=89=A9=E5=B1=95=20BuzzerNote=20?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E6=94=AF=E6=8C=81=E5=8D=87=E5=8D=8A=E9=9F=B3?= =?UTF-8?q?=E5=B9=B6=E7=BB=9F=E4=B8=80=E6=B3=A8=E9=87=8A=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/drivers/include/buzzer.h | 57 +++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/boards/drivers/include/buzzer.h b/boards/drivers/include/buzzer.h index aeb84f5f..d602164e 100644 --- a/boards/drivers/include/buzzer.h +++ b/boards/drivers/include/buzzer.h @@ -33,29 +33,44 @@ namespace driver { * @note there are three octaves in total */ enum class BuzzerNote { - Do1L = 262, ///*261.63Hz*/ 3822us - Re2L = 294, ///*293.66Hz*/ 3405us - Mi3L = 330, ///*329.63Hz*/ 3034us - Fa4L = 349, ///*349.23Hz*/ 2863us - So5L = 392, ///*392.00Hz*/ 2551us - La6L = 440, ///*440.00Hz*/ 2272us - Si7L = 494, ///*493.88Hz*/ 2052us + Do1L = 262, // C4: 261.63 Hz, 3822 us + Do1SharpL = 277, // C#4: 277.18 Hz, 3608 us + Re2L = 294, // D4: 293.66 Hz, 3405 us + Re2SharpL = 311, // D#4: 311.13 Hz, 3214 us + Mi3L = 330, // E4: 329.63 Hz, 3034 us + Fa4L = 349, // F4: 349.23 Hz, 2863 us + Fa4SharpL = 370, // F#4: 369.99 Hz, 2703 us + So5L = 392, // G4: 392.00 Hz, 2551 us + So5SharpL = 415, // G#4: 415.30 Hz, 2408 us + La6L = 440, // A4: 440.00 Hz, 2273 us + La6SharpL = 466, // A#4: 466.16 Hz, 2145 us + Si7L = 494, // B4: 493.88 Hz, 2025 us - Do1M = 523, ///*523.25Hz*/ 1911us - Re2M = 587, ///*587.33Hz*/ 1703us - Mi3M = 659, ///*659.26Hz*/ 1517us - Fa4M = 698, ///*698.46Hz*/ 1432us - So5M = 784, ///*784.00Hz*/ 1276us - La6M = 880, ///*880.00Hz*/ 1136us - Si7M = 988, ///*987.77Hz*/ 1012us + Do1M = 523, // C5: 523.25 Hz, 1911 us + Do1SharpM = 554, // C#5: 554.37 Hz, 1804 us + Re2M = 587, // D5: 587.33 Hz, 1703 us + Re2SharpM = 622, // D#5: 622.25 Hz, 1607 us + Mi3M = 659, // E5: 659.26 Hz, 1517 us + Fa4M = 698, // F5: 698.46 Hz, 1432 us + Fa4SharpM = 740, // F#5: 739.99 Hz, 1351 us + So5M = 784, // G5: 783.99 Hz, 1276 us + So5SharpM = 831, // G#5: 830.61 Hz, 1204 us + La6M = 880, // A5: 880.00 Hz, 1136 us + La6SharpM = 932, // A#5: 932.33 Hz, 1073 us + Si7M = 988, // B5: 987.77 Hz, 1012 us - Do1H = 1047, ///*1046.50Hz*/ 956us - Re2H = 1175, ///*1174.66Hz*/ 851us - Mi3H = 1319, ///*1318.51Hz*/ 758us - Fa4H = 1397, ///*1396.91Hz*/ 716us - So5H = 1568, ///*1567.98Hz*/ 638us - La6H = 1760, ///*1760.00Hz*/ 568us - Si7H = 1976, ///*1975.53Hz*/ 506us + Do1H = 1047, // C6: 1046.50 Hz, 956 us + Do1SharpH = 1109, // C#6: 1108.73 Hz, 902 us + Re2H = 1175, // D6: 1174.66 Hz, 851 us + Re2SharpH = 1245, // D#6: 1244.51 Hz, 804 us + Mi3H = 1319, // E6: 1318.51 Hz, 758 us + Fa4H = 1397, // F6: 1396.91 Hz, 716 us + Fa4SharpH = 1480, // F#6: 1479.98 Hz, 676 us + So5H = 1568, // G6: 1567.98 Hz, 638 us + So5SharpH = 1661, // G#6: 1661.22 Hz, 602 us + La6H = 1760, // A6: 1760.00 Hz, 568 us + La6SharpH = 1865, // A#6: 1864.66 Hz, 536 us + Si7H = 1976, // B6: 1975.53 Hz, 506 us Silent = 0, Finish = -1, From c5d6e3af2e5ebee812af49d30aae691acf36d2c2 Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Fri, 23 Oct 2026 13:35:29 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=85=B1?= =?UTF-8?q?=E4=BA=AB=E8=9C=82=E9=B8=A3=E5=99=A8=E6=9B=B2=E5=BA=93=20buzzer?= =?UTF-8?q?=5Fsongs.h=20=E5=B9=B6=E7=BB=9F=E4=B8=80=E6=9B=B2=E8=B0=B1?= =?UTF-8?q?=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/drivers/include/buzzer.h | 2 +- boards/drivers/include/buzzer_songs.h | 88 ++++++++++++++++++++++++++- 2 files changed, 88 insertions(+), 2 deletions(-) diff --git a/boards/drivers/include/buzzer.h b/boards/drivers/include/buzzer.h index d602164e..c7baf251 100644 --- a/boards/drivers/include/buzzer.h +++ b/boards/drivers/include/buzzer.h @@ -1,5 +1,5 @@ /*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # + # Copyright (c) 2026-2027. BNU-HKBU UIC RoboMaster # # # # This program is free software: you can redistribute it # # and/or modify it under the terms of the GNU General # diff --git a/boards/drivers/include/buzzer_songs.h b/boards/drivers/include/buzzer_songs.h index 8b0d2f30..16f8f7af 100644 --- a/boards/drivers/include/buzzer_songs.h +++ b/boards/drivers/include/buzzer_songs.h @@ -1,3 +1,23 @@ +/*########################################################### + # Copyright (c) 2026-2027. BNU-HKBU UIC RoboMaster # + # # + # This program is free software: you can redistribute it # + # and/or modify it under the terms of the GNU General # + # Public License as published by the Free Software # + # Foundation, either version 3 of the License, or (at # + # your option) any later version. # + # # + # This program is distributed in the hope that it will be # + # useful, but WITHOUT ANY WARRANTY; without even # + # the implied warranty of MERCHANTABILITY or FITNESS # + # FOR A PARTICULAR PURPOSE. See the GNU General # + # Public License for more details. # + # # + # You should have received a copy of the GNU General # + # Public License along with this program. If not, see # + # . # + ###########################################################*/ + #pragma once #include "buzzer.h" @@ -5,9 +25,75 @@ namespace driver { namespace songs { + // Shared melodies and status tones. All delays are in milliseconds. + // End each sequence with Finish so Buzzer::SingSong stops at its boundary. + inline constexpr BuzzerNoteDelayed Mario[] = + {{BuzzerNote::Mi3M, 80}, + {BuzzerNote::Silent, 80}, + {BuzzerNote::Mi3M, 80}, + {BuzzerNote::Silent, 240}, + {BuzzerNote::Mi3M, 80}, + {BuzzerNote::Silent, 240}, + {BuzzerNote::Do1M, 80}, + {BuzzerNote::Silent, 80}, + {BuzzerNote::Mi3M, 80}, + {BuzzerNote::Silent, 240}, + {BuzzerNote::So5M, 80}, + {BuzzerNote::Silent, 560}, + {BuzzerNote::So5L, 80}, + {BuzzerNote::Silent, 0}, + {BuzzerNote::Finish, 0}}; + + inline constexpr BuzzerNoteDelayed War_Cant_of_Mars[] = { + {BuzzerNote::So5M, 400}, {BuzzerNote::So5M, 200}, {BuzzerNote::So5M, 200}, {BuzzerNote::So5M, 400}, + {BuzzerNote::Fa4M, 200}, {BuzzerNote::Mi3M, 400}, {BuzzerNote::So5M, 200}, {BuzzerNote::Do1H, 400}, + {BuzzerNote::Re2H, 200}, {BuzzerNote::Mi3H, 400}, {BuzzerNote::Mi3H, 200}, {BuzzerNote::Mi3H, 400}, + {BuzzerNote::Re2H, 200}, {BuzzerNote::Do1H, 400}, {BuzzerNote::Do1H, 400}, {BuzzerNote::Si7M, 200}, + {BuzzerNote::La6M, 400}, {BuzzerNote::La6M, 200}, {BuzzerNote::La6M, 400}, {BuzzerNote::Si7M, 200}, + {BuzzerNote::Do1H, 400}, {BuzzerNote::Si7M, 200}, {BuzzerNote::Do1H, 400}, {BuzzerNote::La6M, 200}, + {BuzzerNote::So5M, 400}, {BuzzerNote::La6M, 200}, {BuzzerNote::So5M, 400}, {BuzzerNote::Mi3M, 200}, + {BuzzerNote::So5M, 800}, {BuzzerNote::So5M, 400}, {BuzzerNote::So5M, 200}, {BuzzerNote::So5M, 400}, + {BuzzerNote::So5M, 200}, {BuzzerNote::So5M, 400}, {BuzzerNote::Fa4M, 200}, {BuzzerNote::Mi3M, 400}, + {BuzzerNote::So5M, 200}, {BuzzerNote::Do1H, 400}, {BuzzerNote::Re2H, 200}, {BuzzerNote::Mi3H, 400}, + {BuzzerNote::Mi3H, 200}, {BuzzerNote::Mi3H, 400}, {BuzzerNote::Re2H, 200}, {BuzzerNote::Do1H, 800}, + {BuzzerNote::Do1H, 800}, {BuzzerNote::Re2H, 800}, {BuzzerNote::Re2H, 800}, {BuzzerNote::Do1H, 800}, + {BuzzerNote::Si7M, 800}, {BuzzerNote::Do1H, 1600}, {BuzzerNote::Silent, 400}, {BuzzerNote::Silent, 400}, + {BuzzerNote::So5M, 800}, {BuzzerNote::Fa4M, 400}, {BuzzerNote::Mi3M, 400}, {BuzzerNote::So5M, 200}, + {BuzzerNote::Do1H, 400}, {BuzzerNote::Re2H, 200}, {BuzzerNote::Mi3H, 1200}, {BuzzerNote::Do1H, 800}, + {BuzzerNote::Silent, 400}, {BuzzerNote::La6M, 800}, {BuzzerNote::Si7M, 400}, {BuzzerNote::Do1H, 400}, + {BuzzerNote::Si7M, 200}, {BuzzerNote::Do1H, 400}, {BuzzerNote::La6M, 200}, {BuzzerNote::So5M, 1600}, + {BuzzerNote::Mi3M, 800}, {BuzzerNote::Silent, 400}, {BuzzerNote::So5M, 800}, {BuzzerNote::Fa4M, 400}, + {BuzzerNote::Mi3M, 400}, {BuzzerNote::So5M, 200}, {BuzzerNote::Do1H, 400}, {BuzzerNote::Re2H, 200}, + {BuzzerNote::Mi3H, 1600}, {BuzzerNote::Do1H, 800}, {BuzzerNote::Do1H, 800}, {BuzzerNote::Re2H, 800}, + {BuzzerNote::Re2H, 800}, {BuzzerNote::Do1H, 800}, {BuzzerNote::Si7M, 800}, {BuzzerNote::Do1H, 1600}, + {BuzzerNote::Silent, 0}, {BuzzerNote::Finish, 0}, + }; + + inline constexpr BuzzerNoteDelayed DJI[] = + {{BuzzerNote::Do1M, 300}, {BuzzerNote::Re2M, 300}, {BuzzerNote::So5M, 600}, {BuzzerNote::Finish, 0}}; + + inline constexpr BuzzerNoteDelayed SingCaliStart[] = + {{BuzzerNote::Mi3M, 100}, {BuzzerNote::Re2M, 100}, {BuzzerNote::Mi3M, 100}, {BuzzerNote::Finish, 0}}; + + inline constexpr BuzzerNoteDelayed SingCaliDone[] = + {{BuzzerNote::Re2M, 100}, {BuzzerNote::Mi3M, 100}, {BuzzerNote::Re2M, 100}, {BuzzerNote::Finish, 0}}; + + // Two Tigers. + inline constexpr BuzzerNoteDelayed Laohu[] = + {{BuzzerNote::Do1M, 500}, {BuzzerNote::Re2M, 500}, {BuzzerNote::Mi3M, 500}, {BuzzerNote::Do1M, 450}, + {BuzzerNote::Silent, 50}, {BuzzerNote::Do1M, 500}, {BuzzerNote::Re2M, 500}, {BuzzerNote::Mi3M, 500}, + {BuzzerNote::Do1M, 450}, {BuzzerNote::Silent, 50}, {BuzzerNote::Mi3M, 500}, {BuzzerNote::Fa4M, 500}, + {BuzzerNote::So5M, 500}, {BuzzerNote::Silent, 500}, {BuzzerNote::Mi3M, 500}, {BuzzerNote::Fa4M, 500}, + {BuzzerNote::So5M, 500}, {BuzzerNote::Silent, 500}, {BuzzerNote::So5M, 250}, {BuzzerNote::La6M, 250}, + {BuzzerNote::So5M, 250}, {BuzzerNote::Fa4M, 250}, {BuzzerNote::Mi3M, 500}, {BuzzerNote::Do1M, 500}, + {BuzzerNote::So5M, 250}, {BuzzerNote::La6M, 250}, {BuzzerNote::So5M, 250}, {BuzzerNote::Fa4M, 250}, + {BuzzerNote::Mi3M, 500}, {BuzzerNote::Do1M, 500}, {BuzzerNote::Re2M, 500}, {BuzzerNote::Si7L, 500}, + {BuzzerNote::Do1M, 500}, {BuzzerNote::Silent, 500}, {BuzzerNote::Re2M, 500}, {BuzzerNote::Si7L, 500}, + {BuzzerNote::Do1M, 500}, {BuzzerNote::Silent, 500}, {BuzzerNote::Finish, 0}}; + // Never Gonna Give You Up - Rick Astley. // 114 BPM; delays in milliseconds. Each pitched note sounds for 90% of its slot. - static constexpr BuzzerNoteDelayed NeverGonnaGiveYouUp[] = { + inline constexpr BuzzerNoteDelayed NeverGonnaGiveYouUp[] = { // Intro {BuzzerNote::Re2M, 710}, {BuzzerNote::Silent, 79}, // D5, -4 From 0663834c7b2972312677b6cb87c08aeb07791ac4 Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Fri, 23 Oct 2026 13:35:29 +0800 Subject: [PATCH 5/7] =?UTF-8?q?refactor:=20=E7=A4=BA=E4=BE=8B=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=94=B9=E7=94=A8=E5=85=B1=E4=BA=AB=E6=9B=B2=E5=BA=93?= =?UTF-8?q?=20buzzer=5Fsongs.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DJI_Board_TypeA_general/buzzer/main.cpp | 54 ++----------------- .../DJI_Board_TypeC_general/buzzer/main.cpp | 47 ---------------- examples/DM_MC01_general/buzzer/main.cpp | 50 ++--------------- examples/DM_MC02_general/buzzer/main.cpp | 52 ++---------------- examples/F103_Nano_general/buzzer/main.cpp | 50 ++--------------- 5 files changed, 12 insertions(+), 241 deletions(-) diff --git a/examples/DJI_Board_TypeA_general/buzzer/main.cpp b/examples/DJI_Board_TypeA_general/buzzer/main.cpp index a0dc2306..36d7c85c 100644 --- a/examples/DJI_Board_TypeA_general/buzzer/main.cpp +++ b/examples/DJI_Board_TypeA_general/buzzer/main.cpp @@ -21,59 +21,11 @@ #include "main.h" #include "buzzer.h" +#include "buzzer_songs.h" #include "tim.h" -using Note = driver::BuzzerNote; -/* -static bsp::BuzzerNoteDelayed Mario[] = { - {Note::Mi3M, 80}, {Note::Silent, 80}, {Note::Mi3M, 80}, {Note::Silent, -240}, {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::Do1M, 80}, {Note::Silent, -80}, {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::So5M, 80}, {Note::Silent, -560}, {Note::So5L, 80}, {Note::Silent, 0}, {Note::Finish, 0}}; -// uncomment to play the full song -static bsp::BuzzerNoteDelayed War_Cant_of_Mars[] = { - // {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, - // {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, - // {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, - // {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, - // {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - // {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, - // {Note::La6M, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, - // {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, - // {Note::So5M, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - // {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - // {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, - // {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, - // {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, - // {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, - // {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - // {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, - // {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 400}, - {Note::Silent, 400}, - {Note::So5M, 800}, - {Note::Fa4M, 400}, - {Note::Mi3M, 400}, - {Note::So5M, 200}, - {Note::Do1H, 400}, - {Note::Re2H, 200}, - {Note::Mi3H, 1200}, - {Note::Do1H, 800}, - // {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, - // {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, - // {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, - // {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, - // {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - // {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, - // {Note::Do1H, 800}, {Note::Re2H, 800}, {Note::Re2H, 800}, - // {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 0}, - {Note::Finish, 0}, -}; -*/ -static driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - void RM_RTOS_Init(void) { driver::Buzzer buzzer(&htim12, 1, 1000000); - buzzer.SingSong(DJI); - // buzzer.SingSong(War_Cant_of_Mars); + buzzer.SingSong(driver::songs::DJI); + // buzzer.SingSong(driver::songs::War_Cant_of_Mars); } diff --git a/examples/DJI_Board_TypeC_general/buzzer/main.cpp b/examples/DJI_Board_TypeC_general/buzzer/main.cpp index 9114e921..68a28837 100644 --- a/examples/DJI_Board_TypeC_general/buzzer/main.cpp +++ b/examples/DJI_Board_TypeC_general/buzzer/main.cpp @@ -24,53 +24,6 @@ #include "buzzer_songs.h" #include "tim.h" -using Note = driver::BuzzerNote; -/* -static bsp::BuzzerNoteDelayed Mario[] = { - {Note::Mi3M, 80}, {Note::Silent, 80}, {Note::Mi3M, 80}, {Note::Silent, -240}, {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::Do1M, 80}, {Note::Silent, -80}, {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::So5M, 80}, {Note::Silent, -560}, {Note::So5L, 80}, {Note::Silent, 0}, {Note::Finish, 0}}; -// uncomment to play the full song -static bsp::BuzzerNoteDelayed War_Cant_of_Mars[] = { - // {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, - // {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, - // {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, - // {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, - // {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - // {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, - // {Note::La6M, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, - // {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, - // {Note::So5M, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - // {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - // {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, - // {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, - // {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, - // {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, - // {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - // {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, - // {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 400}, - {Note::Silent, 400}, - {Note::So5M, 800}, - {Note::Fa4M, 400}, - {Note::Mi3M, 400}, - {Note::So5M, 200}, - {Note::Do1H, 400}, - {Note::Re2H, 200}, - {Note::Mi3H, 1200}, - {Note::Do1H, 800}, - // {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, - // {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, - // {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, - // {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, - // {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - // {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, - // {Note::Do1H, 800}, {Note::Re2H, 800}, {Note::Re2H, 800}, - // {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 0}, - {Note::Finish, 0}, -}; -*/ void RM_RTOS_Init(void) { driver::Buzzer buzzer(&htim4, 3, 1000000); buzzer.SingSong(driver::songs::NeverGonnaGiveYouUp); diff --git a/examples/DM_MC01_general/buzzer/main.cpp b/examples/DM_MC01_general/buzzer/main.cpp index 07b041ac..04870b4b 100644 --- a/examples/DM_MC01_general/buzzer/main.cpp +++ b/examples/DM_MC01_general/buzzer/main.cpp @@ -21,57 +21,13 @@ #include "main.h" #include "buzzer.h" +#include "buzzer_songs.h" #include "tim.h" -using Note = driver::BuzzerNote; - -// static bsp::BuzzerNoteDelayed Mario[] = { -// {Note::Mi3M, 80}, {Note::Silent, 80}, {Note::Mi3M, 80}, {Note::Silent, 240}, -// {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::Do1M, 80}, {Note::Silent, 80}, -// {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::So5M, 80}, {Note::Silent, 560}, -// {Note::So5L, 80}, {Note::Silent, 0}, {Note::Finish, 0}}; -// uncomment to play the full song -// static bsp::BuzzerNoteDelayed War_Cant_of_Mars[] = { -// {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, -// {Note::Fa4M, 200}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, -// {Note::Re2H, 200}, {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, -// {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, -// {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, -// {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, -// {Note::So5M, 400}, {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, -// {Note::So5M, 800}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, -// {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, -// {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, -// {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, -// {Note::Do1H, 800}, {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, -// {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 400}, {Note::Silent, 400}, -// {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, -// {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, -// {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, -// {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, -// {Note::Mi3M, 800}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, -// {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, -// {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, -// {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, -// {Note::Silent, 0}, {Note::Finish, 0}, -// }; - -static driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -static driver::BuzzerNoteDelayed Laohu[] = - {{Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Mi3M, 500}, {Note::Do1M, 450}, {Note::Silent, 50}, - {Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Mi3M, 500}, {Note::Do1M, 450}, {Note::Silent, 50}, - {Note::Mi3M, 500}, {Note::Fa4M, 500}, {Note::So5M, 500}, {Note::Silent, 500}, {Note::Mi3M, 500}, - {Note::Fa4M, 500}, {Note::So5M, 500}, {Note::Silent, 500}, {Note::So5M, 250}, {Note::La6M, 250}, - {Note::So5M, 250}, {Note::Fa4M, 250}, {Note::Mi3M, 500}, {Note::Do1M, 500}, {Note::So5M, 250}, - {Note::La6M, 250}, {Note::So5M, 250}, {Note::Fa4M, 250}, {Note::Mi3M, 500}, {Note::Do1M, 500}, - {Note::Re2M, 500}, {Note::Si7L, 500}, {Note::Do1M, 500}, {Note::Silent, 500}, {Note::Re2M, 500}, - {Note::Si7L, 500}, {Note::Do1M, 500}, {Note::Silent, 500}, {Note::Finish, 0}}; - void RM_RTOS_Init(void) { driver::Buzzer buzzer(&htim2, 4, 1000000); - buzzer.SingSong(DJI); + buzzer.SingSong(driver::songs::DJI); HAL_Delay(500); - buzzer.SingSong(Laohu); + buzzer.SingSong(driver::songs::Laohu); HAL_Delay(1000); } diff --git a/examples/DM_MC02_general/buzzer/main.cpp b/examples/DM_MC02_general/buzzer/main.cpp index e62f0934..5dfb5b94 100644 --- a/examples/DM_MC02_general/buzzer/main.cpp +++ b/examples/DM_MC02_general/buzzer/main.cpp @@ -21,59 +21,13 @@ #include "main.h" #include "buzzer.h" +#include "buzzer_songs.h" #include "tim.h" -using Note = driver::BuzzerNote; - -// static bsp::BuzzerNoteDelayed Mario[] = { -// {Note::Mi3M, 80}, {Note::Silent, 80}, {Note::Mi3M, 80}, {Note::Silent, 240}, -// {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::Do1M, 80}, {Note::Silent, 80}, -// {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::So5M, 80}, {Note::Silent, 560}, -// {Note::So5L, 80}, {Note::Silent, 0}, {Note::Finish, 0}}; -// uncomment to play the full song -// static bsp::BuzzerNoteDelayed War_Cant_of_Mars[] = { -// {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, -// {Note::Fa4M, 200}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, -// {Note::Re2H, 200}, {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, -// {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, -// {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, -// {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, -// {Note::So5M, 400}, {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, -// {Note::So5M, 800}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, -// {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, -// {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, -// {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, -// {Note::Do1H, 800}, {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, -// {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 400}, {Note::Silent, 400}, -// {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, -// {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, -// {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, -// {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, -// {Note::Mi3M, 800}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, -// {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, -// {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, -// {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, -// {Note::Silent, 0}, {Note::Finish, 0}, -// }; - -static driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -// static driver::BuzzerNoteDelayed Laohu[] = { -// {Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Mi3M, 500}, {Note::Do1M, 450}, -// {Note::Silent, 50}, {Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Mi3M, 500}, -// {Note::Do1M, 450}, {Note::Silent, 50}, {Note::Mi3M, 500}, {Note::Fa4M, 500}, -// {Note::So5M, 500}, {Note::Silent, 500}, {Note::Mi3M, 500}, {Note::Fa4M, 500}, -// {Note::So5M, 500}, {Note::Silent, 500}, {Note::So5M, 250}, {Note::La6M, 250}, -// {Note::So5M, 250}, {Note::Fa4M, 250}, {Note::Mi3M, 500}, {Note::Do1M, 500}, -// {Note::So5M, 250}, {Note::La6M, 250}, {Note::So5M, 250}, {Note::Fa4M, 250}, -// {Note::Mi3M, 500}, {Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Si7L, 500}, -// {Note::Do1M, 500}, {Note::Silent, 500}, {Note::Re2M, 500}, {Note::Si7L, 500}, -// {Note::Do1M, 500}, {Note::Silent, 500}, {Note::Finish, 0}}; - void RM_RTOS_Init(void) { driver::Buzzer buzzer(&htim12, 2, 1000000); - buzzer.SingSong(DJI); + buzzer.SingSong(driver::songs::DJI); HAL_Delay(500); - // buzzer.SingSong(Laohu); + // buzzer.SingSong(driver::songs::Laohu); HAL_Delay(1000); } diff --git a/examples/F103_Nano_general/buzzer/main.cpp b/examples/F103_Nano_general/buzzer/main.cpp index 5da55da6..2623cb21 100644 --- a/examples/F103_Nano_general/buzzer/main.cpp +++ b/examples/F103_Nano_general/buzzer/main.cpp @@ -21,57 +21,13 @@ #include "main.h" #include "buzzer.h" +#include "buzzer_songs.h" #include "tim.h" -using Note = driver::BuzzerNote; - -// static bsp::BuzzerNoteDelayed Mario[] = { -// {Note::Mi3M, 80}, {Note::Silent, 80}, {Note::Mi3M, 80}, {Note::Silent, 240}, -// {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::Do1M, 80}, {Note::Silent, 80}, -// {Note::Mi3M, 80}, {Note::Silent, 240}, {Note::So5M, 80}, {Note::Silent, 560}, -// {Note::So5L, 80}, {Note::Silent, 0}, {Note::Finish, 0}}; -// uncomment to play the full song -// static bsp::BuzzerNoteDelayed War_Cant_of_Mars[] = { -// {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, -// {Note::Fa4M, 200}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, -// {Note::Re2H, 200}, {Note::Mi3H, 400}, {Note::Mi3H, 200}, {Note::Mi3H, 400}, -// {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, -// {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, -// {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, -// {Note::So5M, 400}, {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, -// {Note::So5M, 800}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, -// {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, {Note::Mi3M, 400}, -// {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, -// {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, -// {Note::Do1H, 800}, {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, -// {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 400}, {Note::Silent, 400}, -// {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, -// {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, -// {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, -// {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, -// {Note::Mi3M, 800}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, -// {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, -// {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, -// {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, -// {Note::Silent, 0}, {Note::Finish, 0}, -// }; - -static driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -static driver::BuzzerNoteDelayed Laohu[] = - {{Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Mi3M, 500}, {Note::Do1M, 450}, {Note::Silent, 50}, - {Note::Do1M, 500}, {Note::Re2M, 500}, {Note::Mi3M, 500}, {Note::Do1M, 450}, {Note::Silent, 50}, - {Note::Mi3M, 500}, {Note::Fa4M, 500}, {Note::So5M, 500}, {Note::Silent, 500}, {Note::Mi3M, 500}, - {Note::Fa4M, 500}, {Note::So5M, 500}, {Note::Silent, 500}, {Note::So5M, 250}, {Note::La6M, 250}, - {Note::So5M, 250}, {Note::Fa4M, 250}, {Note::Mi3M, 500}, {Note::Do1M, 500}, {Note::So5M, 250}, - {Note::La6M, 250}, {Note::So5M, 250}, {Note::Fa4M, 250}, {Note::Mi3M, 500}, {Note::Do1M, 500}, - {Note::Re2M, 500}, {Note::Si7L, 500}, {Note::Do1M, 500}, {Note::Silent, 500}, {Note::Re2M, 500}, - {Note::Si7L, 500}, {Note::Do1M, 500}, {Note::Silent, 500}, {Note::Finish, 0}}; - void RM_RTOS_Init(void) { driver::Buzzer buzzer(&htim1, 1, 1000000); - buzzer.SingSong(DJI); + buzzer.SingSong(driver::songs::DJI); HAL_Delay(500); - buzzer.SingSong(Laohu); + buzzer.SingSong(driver::songs::Laohu); HAL_Delay(1000); } From f2b7d75f4f14173ddb98b38067c017a32800ffcf Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Fri, 23 Oct 2026 13:35:30 +0800 Subject: [PATCH 6/7] =?UTF-8?q?refactor:=20programs=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E8=87=B3=E5=85=B1=E4=BA=AB=E6=9B=B2=E5=BA=93=E5=B9=B6=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=20buzzer=5Fnotes.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hero / Ares/ Cakey / DGStandard / Neo迁移至共享曲库并移除 buzzer_notes.h --- programs/Ares/chassis/include/buzzer_notes.h | 67 ------------------- programs/Ares/chassis/src/main.cpp | 4 +- programs/Ares/gimbal/include/buzzer_notes.h | 67 ------------------- programs/Ares/gimbal/include/gimbal_task.h | 2 +- programs/Ares/gimbal/src/gimbal_task.cpp | 4 +- programs/Ares/gimbal/src/main.cpp | 4 +- programs/Cakey/include/buzzer_notes.h | 67 ------------------- programs/Cakey/include/gimbal_task.h | 2 +- programs/Cakey/src/gimbal_task.cpp | 4 +- programs/Cakey/src/main.cpp | 4 +- .../DGStandard/chassis/include/buzzer_notes.h | 67 ------------------- programs/DGStandard/chassis/src/main.cpp | 4 +- .../DGStandard/gimbal/include/buzzer_notes.h | 67 ------------------- .../DGStandard/gimbal/include/gimbal_task.h | 2 +- .../DGStandard/gimbal/src/gimbal_task.cpp | 4 +- programs/DGStandard/gimbal/src/main.cpp | 4 +- programs/Hero/chassis/include/buzzer_notes.h | 67 ------------------- programs/Hero/chassis/src/main.cpp | 6 +- programs/Hero/gimbal/include/buzzer_notes.h | 67 ------------------- programs/Hero/gimbal/include/gimbal_task.h | 2 +- programs/Hero/gimbal/src/gimbal_task.cpp | 4 +- programs/Hero/gimbal/src/main.cpp | 4 +- programs/Neo/gimbal/include/buzzer_notes.h | 67 ------------------- programs/Neo/gimbal/include/gimbal_task.h | 2 +- programs/Neo/gimbal/src/gimbal_task.cpp | 4 +- programs/Neo/gimbal/src/main.cpp | 4 +- 26 files changed, 32 insertions(+), 568 deletions(-) delete mode 100644 programs/Ares/chassis/include/buzzer_notes.h delete mode 100644 programs/Ares/gimbal/include/buzzer_notes.h delete mode 100644 programs/Cakey/include/buzzer_notes.h delete mode 100644 programs/DGStandard/chassis/include/buzzer_notes.h delete mode 100644 programs/DGStandard/gimbal/include/buzzer_notes.h delete mode 100644 programs/Hero/chassis/include/buzzer_notes.h delete mode 100644 programs/Hero/gimbal/include/buzzer_notes.h delete mode 100644 programs/Neo/gimbal/include/buzzer_notes.h diff --git a/programs/Ares/chassis/include/buzzer_notes.h b/programs/Ares/chassis/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/Ares/chassis/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/Ares/chassis/src/main.cpp b/programs/Ares/chassis/src/main.cpp index b4291e06..666e1b9e 100644 --- a/programs/Ares/chassis/src/main.cpp +++ b/programs/Ares/chassis/src/main.cpp @@ -24,7 +24,7 @@ #include "bsp_batteryvol.h" #include "bsp_can.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis.h" #include "cmsis_os.h" @@ -145,7 +145,7 @@ void RM_RTOS_Default_Task(const void* args) { UNUSED(args); osDelay(500); - Buzzer_Sing(Mario); + Buzzer_Sing(driver::songs::Mario); while (true) { chassis->UpdatePowerVoltage(battery_vol->GetBatteryVol()); diff --git a/programs/Ares/gimbal/include/buzzer_notes.h b/programs/Ares/gimbal/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/Ares/gimbal/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/Ares/gimbal/include/gimbal_task.h b/programs/Ares/gimbal/include/gimbal_task.h index cffe6e1c..2f830acb 100644 --- a/programs/Ares/gimbal/include/gimbal_task.h +++ b/programs/Ares/gimbal/include/gimbal_task.h @@ -21,7 +21,7 @@ #pragma once #include "DjiMotorBase.h" #include "bsp_can.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "cmsis_os2.h" #include "gimbal.h" diff --git a/programs/Ares/gimbal/src/gimbal_task.cpp b/programs/Ares/gimbal/src/gimbal_task.cpp index 522e5810..27c7dc43 100644 --- a/programs/Ares/gimbal/src/gimbal_task.cpp +++ b/programs/Ares/gimbal/src/gimbal_task.cpp @@ -54,7 +54,7 @@ void gimbalTask(void* arg) { // 云台复位完成后,播放一段音乐,代表开始校准陀螺仪 // 校准陀螺仪会对陀螺仪进行2000次的读取,然后取平均值作为校准值 // buzzer->SingTone(bsp::BuzzerNote::La6M); - Buzzer_Sing(SingCaliStart); + Buzzer_Sing(driver::songs::SingCaliStart); // reset_yaw(); imu->Calibrate(); i = 0; @@ -65,7 +65,7 @@ void gimbalTask(void* arg) { ++i; } // 校准完成后播放一段音乐 - Buzzer_Sing(SingCaliDone); + Buzzer_Sing(driver::songs::SingCaliDone); osDelay(100); // 初始化当前陀螺仪角度、遥控器输入转换的角度、目标角度 diff --git a/programs/Ares/gimbal/src/main.cpp b/programs/Ares/gimbal/src/main.cpp index ea4f0205..d519261d 100644 --- a/programs/Ares/gimbal/src/main.cpp +++ b/programs/Ares/gimbal/src/main.cpp @@ -22,7 +22,7 @@ #include "bsp_os.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis_task.h" #include "gimbal_task.h" @@ -66,7 +66,7 @@ void RM_RTOS_Threads_Init(void) { void RM_RTOS_Default_Task(const void* arg) { UNUSED(arg); osDelay(3000); - Buzzer_Sing(DJI); + Buzzer_Sing(driver::songs::DJI); // while (true) { // clear_screen(); // set_cursor(0, 0); diff --git a/programs/Cakey/include/buzzer_notes.h b/programs/Cakey/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/Cakey/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/Cakey/include/gimbal_task.h b/programs/Cakey/include/gimbal_task.h index 6f20e9a7..69eefaf1 100644 --- a/programs/Cakey/include/gimbal_task.h +++ b/programs/Cakey/include/gimbal_task.h @@ -21,7 +21,7 @@ #pragma once #include "DjiMotorBase.h" #include "bsp_can.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "cmsis_os2.h" #include "gimbal.h" diff --git a/programs/Cakey/src/gimbal_task.cpp b/programs/Cakey/src/gimbal_task.cpp index a368585c..f7ea4284 100644 --- a/programs/Cakey/src/gimbal_task.cpp +++ b/programs/Cakey/src/gimbal_task.cpp @@ -56,7 +56,7 @@ void gimbalTask(void* arg) { // 云台复位完成后,播放一段音乐,代表开始校准陀螺仪 // 校准陀螺仪会对陀螺仪进行2000次的读取,然后取平均值作为校准值 // buzzer->SingTone(bsp::BuzzerNote::La6M); - Buzzer_Sing(SingCaliStart); + Buzzer_Sing(driver::songs::SingCaliStart); // reset_yaw(); ahrs->Cailbrate(); i = 0; @@ -67,7 +67,7 @@ void gimbalTask(void* arg) { ++i; } // 校准完成后播放一段音乐 - Buzzer_Sing(SingCaliDone); + Buzzer_Sing(driver::songs::SingCaliDone); osDelay(100); // 初始化当前角度、遥控器输入转换的角度、目标角度 diff --git a/programs/Cakey/src/main.cpp b/programs/Cakey/src/main.cpp index 0635467e..9353314d 100644 --- a/programs/Cakey/src/main.cpp +++ b/programs/Cakey/src/main.cpp @@ -22,7 +22,7 @@ #include "bsp_os.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis_task.h" #include "cmsis_os.h" @@ -82,7 +82,7 @@ void RM_RTOS_Threads_Init(void) { void RM_RTOS_Default_Task(const void* arg) { UNUSED(arg); osDelay(100); - Buzzer_Sing(DJI); + Buzzer_Sing(driver::songs::DJI); // while (true) { // uint8_t buffer[sizeof(control::ConstrainedPID::PID_State_t) * 2 + 2] = {0xAA, 0xBB}; diff --git a/programs/DGStandard/chassis/include/buzzer_notes.h b/programs/DGStandard/chassis/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/DGStandard/chassis/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/DGStandard/chassis/src/main.cpp b/programs/DGStandard/chassis/src/main.cpp index 0df0fde8..08b2e80b 100644 --- a/programs/DGStandard/chassis/src/main.cpp +++ b/programs/DGStandard/chassis/src/main.cpp @@ -24,7 +24,7 @@ #include "bsp_batteryvol.h" #include "bsp_can.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis.h" #include "cmsis_os.h" @@ -139,7 +139,7 @@ void RM_RTOS_Default_Task(const void* args) { UNUSED(args); osDelay(500); - Buzzer_Sing(Mario); + Buzzer_Sing(driver::songs::Mario); while (true) { chassis->UpdatePowerVoltage(battery_vol->GetBatteryVol()); diff --git a/programs/DGStandard/gimbal/include/buzzer_notes.h b/programs/DGStandard/gimbal/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/DGStandard/gimbal/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/DGStandard/gimbal/include/gimbal_task.h b/programs/DGStandard/gimbal/include/gimbal_task.h index 6f20e9a7..69eefaf1 100644 --- a/programs/DGStandard/gimbal/include/gimbal_task.h +++ b/programs/DGStandard/gimbal/include/gimbal_task.h @@ -21,7 +21,7 @@ #pragma once #include "DjiMotorBase.h" #include "bsp_can.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "cmsis_os2.h" #include "gimbal.h" diff --git a/programs/DGStandard/gimbal/src/gimbal_task.cpp b/programs/DGStandard/gimbal/src/gimbal_task.cpp index da2d555a..b7032816 100644 --- a/programs/DGStandard/gimbal/src/gimbal_task.cpp +++ b/programs/DGStandard/gimbal/src/gimbal_task.cpp @@ -58,7 +58,7 @@ void gimbalTask(void* arg) { // 云台复位完成后,播放一段音乐,代表开始校准陀螺仪 // 校准陀螺仪会对陀螺仪进行2000次的读取,然后取平均值作为校准值 // buzzer->SingTone(bsp::BuzzerNote::La6M); - Buzzer_Sing(SingCaliStart); + Buzzer_Sing(driver::songs::SingCaliStart); // reset_yaw(); ahrs->Cailbrate(); i = 0; @@ -69,7 +69,7 @@ void gimbalTask(void* arg) { ++i; } // 校准完成后播放一段音乐 - Buzzer_Sing(SingCaliDone); + Buzzer_Sing(driver::songs::SingCaliDone); osDelay(100); // 初始化当前陀螺仪角度、遥控器输入转换的角度、目标角度 diff --git a/programs/DGStandard/gimbal/src/main.cpp b/programs/DGStandard/gimbal/src/main.cpp index 94fe6577..dbae85c6 100644 --- a/programs/DGStandard/gimbal/src/main.cpp +++ b/programs/DGStandard/gimbal/src/main.cpp @@ -22,7 +22,7 @@ #include "bsp_os.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis_task.h" #include "cmsis_os.h" @@ -82,7 +82,7 @@ void RM_RTOS_Threads_Init(void) { void RM_RTOS_Default_Task(const void* arg) { UNUSED(arg); osDelay(100); - Buzzer_Sing(DJI); + Buzzer_Sing(driver::songs::DJI); // while (true) { // uint8_t buffer[sizeof(control::ConstrainedPID::PID_State_t) * 2 + 2] = {0xAA, 0xBB}; diff --git a/programs/Hero/chassis/include/buzzer_notes.h b/programs/Hero/chassis/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/Hero/chassis/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/Hero/chassis/src/main.cpp b/programs/Hero/chassis/src/main.cpp index b33a192e..0b6b25d7 100644 --- a/programs/Hero/chassis/src/main.cpp +++ b/programs/Hero/chassis/src/main.cpp @@ -23,7 +23,7 @@ #include "DjiMotorBase.h" #include "bsp_can.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis.h" #include "cmsis_os.h" @@ -146,13 +146,13 @@ void RM_RTOS_Default_Task(const void* args) { UNUSED(args); osDelay(500); - Buzzer_Sing(Mario); + Buzzer_Sing(driver::songs::Mario); while (true) { chassis->UpdatePowerVoltage(battery_vol->GetBatteryVol()); chassis->Update(); osDelay(10); print("helloworld\r\n"); - Buzzer_Sing(Mario); + Buzzer_Sing(driver::songs::Mario); } } diff --git a/programs/Hero/gimbal/include/buzzer_notes.h b/programs/Hero/gimbal/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/Hero/gimbal/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/Hero/gimbal/include/gimbal_task.h b/programs/Hero/gimbal/include/gimbal_task.h index d2225459..a4d68a36 100644 --- a/programs/Hero/gimbal/include/gimbal_task.h +++ b/programs/Hero/gimbal/include/gimbal_task.h @@ -21,7 +21,7 @@ #pragma once #include "DjiMotorBase.h" #include "bsp_can.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "cmsis_os2.h" #include "gimbal.h" diff --git a/programs/Hero/gimbal/src/gimbal_task.cpp b/programs/Hero/gimbal/src/gimbal_task.cpp index e44ecfef..09afdcbf 100644 --- a/programs/Hero/gimbal/src/gimbal_task.cpp +++ b/programs/Hero/gimbal/src/gimbal_task.cpp @@ -59,7 +59,7 @@ void gimbalTask(void* arg) { } // buzzer->SingTone(bsp::BuzzerNote::La6M); - Buzzer_Sing(SingCaliStart); + Buzzer_Sing(driver::songs::SingCaliStart); imu->Calibrate(); i = 0; while (!imu->DataReady() || !imu->CaliDone()) { @@ -69,7 +69,7 @@ void gimbalTask(void* arg) { osDelay(1); ++i; } - Buzzer_Sing(SingCaliDone); + Buzzer_Sing(driver::songs::SingCaliDone); float pitch_ratio, yaw_ratio; float pitch_curr, yaw_curr; pitch_curr = -imu->INS_angle[2]; diff --git a/programs/Hero/gimbal/src/main.cpp b/programs/Hero/gimbal/src/main.cpp index 76d93611..fc5a8d8a 100644 --- a/programs/Hero/gimbal/src/main.cpp +++ b/programs/Hero/gimbal/src/main.cpp @@ -22,7 +22,7 @@ #include "bsp_os.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis_task.h" #include "cmsis_os.h" @@ -94,7 +94,7 @@ void RM_RTOS_Default_Task(const void* arg) { UNUSED(arg); osDelay(3000); - Buzzer_Sing(DJI); + Buzzer_Sing(driver::songs::DJI); while (true) { set_cursor(0, 0); clear_screen(); diff --git a/programs/Neo/gimbal/include/buzzer_notes.h b/programs/Neo/gimbal/include/buzzer_notes.h deleted file mode 100644 index a4aa6871..00000000 --- a/programs/Neo/gimbal/include/buzzer_notes.h +++ /dev/null @@ -1,67 +0,0 @@ -/*########################################################### - # Copyright (c) 2023-2024. BNU-HKBU UIC RoboMaster # - # # - # This program is free software: you can redistribute it # - # and/or modify it under the terms of the GNU General # - # Public License as published by the Free Software # - # Foundation, either version 3 of the License, or (at # - # your option) any later version. # - # # - # This program is distributed in the hope that it will be # - # useful, but WITHOUT ANY WARRANTY; without even # - # the implied warranty of MERCHANTABILITY or FITNESS # - # FOR A PARTICULAR PURPOSE. See the GNU General # - # Public License for more details. # - # # - # You should have received a copy of the GNU General # - # Public License along with this program. If not, see # - # . # - ###########################################################*/ - -#pragma once -#include "buzzer.h" -using Note = driver::BuzzerNote; -const driver::BuzzerNoteDelayed Mario[] = - {{Note::Mi3M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::Do1M, 80}, - {Note::Silent, 80}, - {Note::Mi3M, 80}, - {Note::Silent, 240}, - {Note::So5M, 80}, - {Note::Silent, 560}, - {Note::So5L, 80}, - {Note::Silent, 0}, - {Note::Finish, 0}}; -const driver::BuzzerNoteDelayed War_Cant_of_Mars[] = { - {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 400}, {Note::Do1H, 400}, - {Note::Si7M, 200}, {Note::La6M, 400}, {Note::La6M, 200}, {Note::La6M, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::Si7M, 200}, {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 400}, - {Note::La6M, 200}, {Note::So5M, 400}, {Note::Mi3M, 200}, {Note::So5M, 800}, {Note::So5M, 400}, - {Note::So5M, 200}, {Note::So5M, 400}, {Note::So5M, 200}, {Note::So5M, 400}, {Note::Fa4M, 200}, - {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 400}, - {Note::Mi3H, 200}, {Note::Mi3H, 400}, {Note::Re2H, 200}, {Note::Do1H, 800}, {Note::Do1H, 800}, - {Note::Re2H, 800}, {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, - {Note::Silent, 400}, {Note::Silent, 400}, {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, - {Note::So5M, 200}, {Note::Do1H, 400}, {Note::Re2H, 200}, {Note::Mi3H, 1200}, {Note::Do1H, 800}, - {Note::Silent, 400}, {Note::La6M, 800}, {Note::Si7M, 400}, {Note::Do1H, 400}, {Note::Si7M, 200}, - {Note::Do1H, 400}, {Note::La6M, 200}, {Note::So5M, 1600}, {Note::Mi3M, 800}, {Note::Silent, 400}, - {Note::So5M, 800}, {Note::Fa4M, 400}, {Note::Mi3M, 400}, {Note::So5M, 200}, {Note::Do1H, 400}, - {Note::Re2H, 200}, {Note::Mi3H, 1600}, {Note::Do1H, 800}, {Note::Do1H, 800}, {Note::Re2H, 800}, - {Note::Re2H, 800}, {Note::Do1H, 800}, {Note::Si7M, 800}, {Note::Do1H, 1600}, {Note::Silent, 0}, - {Note::Finish, 0}, -}; - -const driver::BuzzerNoteDelayed DJI[] = {{Note::Do1M, 300}, {Note::Re2M, 300}, {Note::So5M, 600}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliStart[] = - {{Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Finish, 0}}; - -const driver::BuzzerNoteDelayed SingCaliDone[] = - {{Note::Re2M, 100}, {Note::Mi3M, 100}, {Note::Re2M, 100}, {Note::Finish, 0}}; diff --git a/programs/Neo/gimbal/include/gimbal_task.h b/programs/Neo/gimbal/include/gimbal_task.h index d834aa30..84a8292a 100644 --- a/programs/Neo/gimbal/include/gimbal_task.h +++ b/programs/Neo/gimbal/include/gimbal_task.h @@ -21,7 +21,7 @@ #pragma once #include "DjiMotorBase.h" #include "bsp_can.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "cmsis_os2.h" #include "gimbal.h" diff --git a/programs/Neo/gimbal/src/gimbal_task.cpp b/programs/Neo/gimbal/src/gimbal_task.cpp index 0ac908db..552b4edd 100644 --- a/programs/Neo/gimbal/src/gimbal_task.cpp +++ b/programs/Neo/gimbal/src/gimbal_task.cpp @@ -64,7 +64,7 @@ void gimbalTask(void* arg) { // 云台复位完成后,播放一段音乐,代表开始校准陀螺仪 // 校准陀螺仪会对陀螺仪进行2000次的读取,然后取平均值作为校准值 // buzzer->SingTone(bsp::BuzzerNote::La6M); - Buzzer_Sing(SingCaliStart); + Buzzer_Sing(driver::songs::SingCaliStart); imu->Calibrate(); i = 0; while (!imu->DataReady() || !imu->CaliDone()) { @@ -75,7 +75,7 @@ void gimbalTask(void* arg) { ++i; } // 校准完成后播放一段音乐 - Buzzer_Sing(SingCaliDone); + Buzzer_Sing(driver::songs::SingCaliDone); osDelay(100); // 初始化当前陀螺仪角度、遥控器输入转换的角度、目标角度 diff --git a/programs/Neo/gimbal/src/main.cpp b/programs/Neo/gimbal/src/main.cpp index 3fe98220..c4eeb754 100644 --- a/programs/Neo/gimbal/src/main.cpp +++ b/programs/Neo/gimbal/src/main.cpp @@ -22,7 +22,7 @@ #include "bsp_os.h" #include "bsp_print.h" -#include "buzzer_notes.h" +#include "buzzer_songs.h" #include "buzzer_task.h" #include "chassis_task.h" #include "cmsis_os.h" @@ -71,7 +71,7 @@ void RM_RTOS_Threads_Init(void) { void RM_RTOS_Default_Task(const void* arg) { UNUSED(arg); osDelay(100); - Buzzer_Sing(DJI); + Buzzer_Sing(driver::songs::DJI); // while (true) { // uint8_t buffer[sizeof(control::ConstrainedPID::PID_State_t) * 2 + 2] = {0xAA, 0xBB}; From c99f5fd0da43c5282d4715752d978cdc96bb51a7 Mon Sep 17 00:00:00 2001 From: M2rt1n Date: Sun, 25 Oct 2026 16:51:20 +0800 Subject: [PATCH 7/7] =?UTF-8?q?sytle=EF=BC=9Aclang=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/drivers/include/buzzer.h | 72 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/boards/drivers/include/buzzer.h b/boards/drivers/include/buzzer.h index c7baf251..5fd4e956 100644 --- a/boards/drivers/include/buzzer.h +++ b/boards/drivers/include/buzzer.h @@ -33,44 +33,44 @@ namespace driver { * @note there are three octaves in total */ enum class BuzzerNote { - Do1L = 262, // C4: 261.63 Hz, 3822 us - Do1SharpL = 277, // C#4: 277.18 Hz, 3608 us - Re2L = 294, // D4: 293.66 Hz, 3405 us - Re2SharpL = 311, // D#4: 311.13 Hz, 3214 us - Mi3L = 330, // E4: 329.63 Hz, 3034 us - Fa4L = 349, // F4: 349.23 Hz, 2863 us - Fa4SharpL = 370, // F#4: 369.99 Hz, 2703 us - So5L = 392, // G4: 392.00 Hz, 2551 us - So5SharpL = 415, // G#4: 415.30 Hz, 2408 us - La6L = 440, // A4: 440.00 Hz, 2273 us - La6SharpL = 466, // A#4: 466.16 Hz, 2145 us - Si7L = 494, // B4: 493.88 Hz, 2025 us + Do1L = 262, // C4: 261.63 Hz, 3822 us + Do1SharpL = 277, // C#4: 277.18 Hz, 3608 us + Re2L = 294, // D4: 293.66 Hz, 3405 us + Re2SharpL = 311, // D#4: 311.13 Hz, 3214 us + Mi3L = 330, // E4: 329.63 Hz, 3034 us + Fa4L = 349, // F4: 349.23 Hz, 2863 us + Fa4SharpL = 370, // F#4: 369.99 Hz, 2703 us + So5L = 392, // G4: 392.00 Hz, 2551 us + So5SharpL = 415, // G#4: 415.30 Hz, 2408 us + La6L = 440, // A4: 440.00 Hz, 2273 us + La6SharpL = 466, // A#4: 466.16 Hz, 2145 us + Si7L = 494, // B4: 493.88 Hz, 2025 us - Do1M = 523, // C5: 523.25 Hz, 1911 us - Do1SharpM = 554, // C#5: 554.37 Hz, 1804 us - Re2M = 587, // D5: 587.33 Hz, 1703 us - Re2SharpM = 622, // D#5: 622.25 Hz, 1607 us - Mi3M = 659, // E5: 659.26 Hz, 1517 us - Fa4M = 698, // F5: 698.46 Hz, 1432 us - Fa4SharpM = 740, // F#5: 739.99 Hz, 1351 us - So5M = 784, // G5: 783.99 Hz, 1276 us - So5SharpM = 831, // G#5: 830.61 Hz, 1204 us - La6M = 880, // A5: 880.00 Hz, 1136 us - La6SharpM = 932, // A#5: 932.33 Hz, 1073 us - Si7M = 988, // B5: 987.77 Hz, 1012 us + Do1M = 523, // C5: 523.25 Hz, 1911 us + Do1SharpM = 554, // C#5: 554.37 Hz, 1804 us + Re2M = 587, // D5: 587.33 Hz, 1703 us + Re2SharpM = 622, // D#5: 622.25 Hz, 1607 us + Mi3M = 659, // E5: 659.26 Hz, 1517 us + Fa4M = 698, // F5: 698.46 Hz, 1432 us + Fa4SharpM = 740, // F#5: 739.99 Hz, 1351 us + So5M = 784, // G5: 783.99 Hz, 1276 us + So5SharpM = 831, // G#5: 830.61 Hz, 1204 us + La6M = 880, // A5: 880.00 Hz, 1136 us + La6SharpM = 932, // A#5: 932.33 Hz, 1073 us + Si7M = 988, // B5: 987.77 Hz, 1012 us - Do1H = 1047, // C6: 1046.50 Hz, 956 us - Do1SharpH = 1109, // C#6: 1108.73 Hz, 902 us - Re2H = 1175, // D6: 1174.66 Hz, 851 us - Re2SharpH = 1245, // D#6: 1244.51 Hz, 804 us - Mi3H = 1319, // E6: 1318.51 Hz, 758 us - Fa4H = 1397, // F6: 1396.91 Hz, 716 us - Fa4SharpH = 1480, // F#6: 1479.98 Hz, 676 us - So5H = 1568, // G6: 1567.98 Hz, 638 us - So5SharpH = 1661, // G#6: 1661.22 Hz, 602 us - La6H = 1760, // A6: 1760.00 Hz, 568 us - La6SharpH = 1865, // A#6: 1864.66 Hz, 536 us - Si7H = 1976, // B6: 1975.53 Hz, 506 us + Do1H = 1047, // C6: 1046.50 Hz, 956 us + Do1SharpH = 1109, // C#6: 1108.73 Hz, 902 us + Re2H = 1175, // D6: 1174.66 Hz, 851 us + Re2SharpH = 1245, // D#6: 1244.51 Hz, 804 us + Mi3H = 1319, // E6: 1318.51 Hz, 758 us + Fa4H = 1397, // F6: 1396.91 Hz, 716 us + Fa4SharpH = 1480, // F#6: 1479.98 Hz, 676 us + So5H = 1568, // G6: 1567.98 Hz, 638 us + So5SharpH = 1661, // G#6: 1661.22 Hz, 602 us + La6H = 1760, // A6: 1760.00 Hz, 568 us + La6SharpH = 1865, // A#6: 1864.66 Hz, 536 us + Si7H = 1976, // B6: 1975.53 Hz, 506 us Silent = 0, Finish = -1,