64 lines
1.6 KiB
C
64 lines
1.6 KiB
C
|
#include "device_dac_out.h"
|
|||
|
#include "gd32f4xx.h"
|
|||
|
|
|||
|
|
|||
|
/// @brief DAC<41><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
/// @param[in] none
|
|||
|
/// @return none
|
|||
|
/// @note <20><EFBFBD><DEB8><EFBFBD>־
|
|||
|
/// LH<4C><48>2022-05-26
|
|||
|
void init_dac_out_module(void)
|
|||
|
{
|
|||
|
//DACʱ<43><CAB1>ʹ<EFBFBD><CAB9>
|
|||
|
rcu_periph_clock_enable(RCU_DAC);
|
|||
|
//DAC<41><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PA4--DAC0<43><30>PA5--DAC1
|
|||
|
gpio_mode_set(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_4);
|
|||
|
gpio_mode_set(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_5);
|
|||
|
|
|||
|
dac_deinit();
|
|||
|
/* configure the DAC0 */
|
|||
|
dac_trigger_disable(DAC0);//<2F>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
dac_wave_mode_config(DAC0, DAC_WAVE_DISABLE);
|
|||
|
dac_output_buffer_enable(DAC0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/* configure the DAC1 */
|
|||
|
dac_trigger_disable(DAC1);//<2F>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|||
|
dac_wave_mode_config(DAC1, DAC_WAVE_DISABLE);
|
|||
|
dac_output_buffer_enable(DAC1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
/* enable DAC0 and set data */
|
|||
|
dac_enable(DAC0);
|
|||
|
dac_data_set(DAC0, DAC_ALIGN_12B_R, 0);
|
|||
|
/* enable DAC1 and set data */
|
|||
|
dac_enable(DAC1);
|
|||
|
dac_data_set(DAC1, DAC_ALIGN_12B_R, 0);
|
|||
|
}
|
|||
|
|
|||
|
/// @brief ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD>DAC0<43><30><EFBFBD><EFBFBD>
|
|||
|
/// @param[in] data:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>12λ<32>Ҷ<EFBFBD><D2B6><EFBFBD>
|
|||
|
/// @return none
|
|||
|
/// @note <20><EFBFBD><DEB8><EFBFBD>־
|
|||
|
/// LH<4C><48>2022-05-26
|
|||
|
void hori_dac0_data_out(unsigned short int data)
|
|||
|
{
|
|||
|
uint16_t buff;
|
|||
|
buff = (uint16_t)data;
|
|||
|
dac_data_set(DAC0, DAC_ALIGN_12B_R, buff);
|
|||
|
}
|
|||
|
|
|||
|
/// @brief <20><>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>DAC1<43><31><EFBFBD><EFBFBD>
|
|||
|
/// @param[in] data:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>12λ<32>Ҷ<EFBFBD><D2B6><EFBFBD>
|
|||
|
/// @return none
|
|||
|
/// @note <20><EFBFBD><DEB8><EFBFBD>־
|
|||
|
/// LH<4C><48>2022-05-26
|
|||
|
void vert_dac1_data_out(unsigned short int data)
|
|||
|
{
|
|||
|
uint16_t buff;
|
|||
|
buff = (uint16_t)data;
|
|||
|
dac_data_set(DAC1, DAC_ALIGN_12B_R, buff);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|