#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); }