43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
#include "dacs.h"
|
||
|
||
/**
|
||
* @brief 输出指定值到DAC。
|
||
* @param {dac_t} *dac:DAC控制结构体指针。
|
||
* @param {uint16_t} value:要输出的值。
|
||
* @return {void}
|
||
* @note: 此函数用于输出指定值到指定的DAC通道。
|
||
*/
|
||
static void _out(dac_t *dac, uint16_t value)
|
||
{
|
||
DAC_OUT(dac->dac, dac->dac_channel, value);
|
||
}
|
||
|
||
/**
|
||
* @brief 创建一个DAC处理对象。
|
||
* @param {DAC_TypeDef} *dac:DAC外设寄存器地址。
|
||
* @param {uint16_t} dac_channel:DAC通道。
|
||
* @return {dac_t *} DAC处理对象指针。
|
||
* @note: 此函数用于创建一个DAC处理对象,用于输出指定值到指定的DAC通道。
|
||
*/
|
||
dac_t *dac_create(DAC_TypeDef *dac, uint16_t dac_channel)
|
||
{
|
||
dac_t *handle = (dac_t *)osel_mem_alloc(sizeof(dac_t));
|
||
DBG_ASSERT(handle != NULL __DBG_LINE);
|
||
handle->dac = dac;
|
||
handle->dac_channel = dac_channel;
|
||
|
||
handle->out = _out;
|
||
return handle;
|
||
}
|
||
|
||
/**
|
||
* @brief 释放DAC处理对象。
|
||
* @param {dac_t} *dac:DAC处理对象指针。
|
||
* @return {void}
|
||
* @note: 此函数用于释放DAC处理对象占用的内存。
|
||
*/
|
||
void dac_free(dac_t *dac)
|
||
{
|
||
osel_mem_free(dac);
|
||
}
|