Files
Lamps/Core/Clock/melody.h
Razvalyaev 71fc59d34d Рефакторинг меню и добавление кучи всего:
- иерархическая и универсальная структура меню, которую относительно удобно расширять и добавлять
- заготовик меню для таймера и секундомера
- работающие игры (выбить 1.00 сек, тест реакции, кликер)
2026-04-21 18:29:44 +03:00

27 lines
783 B
C

#ifndef MELODY_H
#define MELODY_H
#include "stm32f1xx_hal.h"
#include "songs.h"
#include "sounds.h"
typedef struct {
TIM_HandleTypeDef* htim;
uint32_t channel;
uint32_t timer_clock_hz; // частота тактирования таймера в Гц
Melody_t *melody;
uint16_t current_index;
uint32_t note_start_time;
uint8_t is_playing;
uint16_t bpm;
} MelodyHandle;
extern MelodyHandle melody;
void Melody_Init(MelodyHandle* mh, TIM_HandleTypeDef* htim, uint32_t channel, uint32_t timer_clock_hz);
void Melody_SetBPM(MelodyHandle* mh, uint16_t bpm);
void Melody_Play(MelodyHandle* mh, Melody_t* melody, uint16_t bpm);
void Melody_Stop(MelodyHandle* mh);
void Melody_Update(MelodyHandle* mh);
uint8_t Melody_IsPlaying(MelodyHandle* mh);
#endif