Files

56 lines
1.2 KiB
C
Raw Permalink Normal View History

2025-06-27 00:32:57 +08:00
#ifndef DAC_H__
#define DAC_H__
#include "stdint.h"
2025-06-27 00:32:57 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD>Ӧ<EFBFBD>Ķ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>ʱ<EFBFBD><CAB1>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>90Mhzʱ
#define RATE11025 8163
#define RATE22050 4081
#define RATE44100 2041
#define RATE48000 1875 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// dac <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
2025-06-27 00:32:57 +08:00
#define DAC_VOL_MAX 10
// <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õĶ<C3B5>ʱ<EFBFBD><CAB1>
#define DAC_TIMER TIM4
2025-06-27 00:32:57 +08:00
#define DAC_TIMER_RCC RCC_APB1Periph_TIM4
typedef struct _DAC_UserStruct {
uint32_t *buff1; // buff<66>ĸ<EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD>2
uint32_t *buff2;
int buff_size;
int buff_useing; // <09><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ĸ<EFBFBD>buff
int buff_Invalid; // 1,<2C>п<EFBFBD><D0BF><EFBFBD>buff<66><66>0<EFBFBD><30><EFBFBD>޿<EFBFBD><DEBF><EFBFBD>buff
int rate; // <20><><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD>Ӧ<EFBFBD>Ķ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void (*call_back)(struct _DAC_UserStruct *u);
} DAC_UserStruct;
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><>˫<EFBFBD><CBAB><EFBFBD>ʽ<E5B7BD><CABD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ɹ<EFBFBD>
int DAC_NormalInit(DAC_UserStruct *dac);
2025-06-27 00:32:57 +08:00
void DAC_NormalDeInit(DAC_UserStruct *dac);
2025-06-27 00:32:57 +08:00
// <20><>ȡDAC<41><43><EFBFBD><EFBFBD>
DAC_UserStruct *DAC_GetDacHander(void);
2025-06-27 00:32:57 +08:00
// <20><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1>Ƶ<EFBFBD><C6B5>
uint16_t DAC_GetRate(uint16_t rate);
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><E4BBBA><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>0<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>-1<><31>ʧ<EFBFBD><CAA7>
int DAC_FillBuff(int16_t *buf, int size, int nch);
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><>fifo<66><6F>ʽ<EFBFBD><CABD>ʼ<EFBFBD><CABC>,<2C><><EFBFBD><EFBFBD>0<EFBFBD>ɹ<EFBFBD>
int DAC_FifolInit(void);
2025-06-27 00:32:57 +08:00
void DAC_FifoDeInit(void);
2025-06-27 00:32:57 +08:00
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD>û<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD>
2025-06-27 00:32:57 +08:00
int DAC_SetSetValuwFun(int (*fun)(uint16_t *));
2025-07-05 19:47:28 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>0<EFBFBD>ɹ<EFBFBD>
2025-06-27 00:32:57 +08:00
int DAC_SaveValue(uint16_t value);
#endif