flizzer_tracker_hal.h 1008 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include "sound_engine/sound_engine.h"
  3. #include "tracker_engine/tracker_engine.h"
  4. #include <stm32wbxx_ll_dma.h>
  5. #include <stm32wbxx_ll_gpio.h>
  6. #include <stm32wbxx_ll_tim.h>
  7. #include <furi_hal.h>
  8. #include <furi_hal_gpio.h>
  9. #include <furi_hal_resources.h>
  10. #define SPEAKER_PWM_TIMER TIM16
  11. #define SAMPLE_RATE_TIMER TIM1
  12. #define TRACKER_ENGINE_TIMER TIM2
  13. #define SPEAKER_PWM_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
  14. #define TIMER_BASE_CLOCK 64000000 /* CPU frequency, 64 MHz */
  15. #define DMA_INSTANCE DMA1, LL_DMA_CHANNEL_1
  16. void sound_engine_dma_isr(void *ctx);
  17. void tracker_engine_timer_isr(void *ctx);
  18. void sound_engine_init_hardware(uint32_t sample_rate, bool external_audio_output, uint16_t *audio_buffer, uint32_t audio_buffer_size);
  19. void tracker_engine_init_hardware(uint8_t rate);
  20. void tracker_engine_set_rate(uint8_t rate);
  21. void sound_engine_start();
  22. void sound_engine_stop();
  23. void stop();
  24. void play();
  25. void tracker_engine_stop();
  26. void sound_engine_deinit_timer();
  27. void tracker_engine_start();