| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef _DRIVER_SDDAC_H
- #define _DRIVER_SDDAC_H
- #include "driver_com.h"
- enum {
- SDDAC_NORMAL_SPR_48k = 0x00,
- SDDAC_NORMAL_SPR_24k,
- SDDAC_NORMAL_SPR_16k,
- SDDAC_NORMAL_SPR_12k,
- SDDAC_NORMAL_SPR_8k,
- SDDAC_HIGH_SPR_240k,
- SDDAC_HIGH_SPR_120k,
- SDDAC_HIGH_SPR_80k,
- SDDAC_HIGH_SPR_60k,
- SDDAC_HIGH_SPR_48k,
- };
- typedef enum {
- SDDAC_IT_ALL_DONE = BIT(0),
- SDDAC_IT_HALF_DONE = BIT(1),
- } SDDAC_IT_TYPEDEF;
- typedef struct{
- u8 sample_rate;
- u8 *dma_buf;
- u16 dma_size;
- } sddac_init_typedef;
- void sddac_init(sddac_init_typedef *config);
- void sddac_clk_init(void);
- void sddac_pic_config(isr_t isr, int pr, SDDAC_IT_TYPEDEF interrupt_type, FUNCTIONAL_STATE state);
- void sddac_cmd(FUNCTIONAL_STATE state);
- FLAG_STATE sddac_get_flag(SDDAC_IT_TYPEDEF interrupt_type);
- void sddac_clear_flag(SDDAC_IT_TYPEDEF interrupt_type);
- void sddac_dma_kick_start(uint8_t *buf, uint16_t size);
- void sddac_deinit(void);
- #endif
|