RT-Thread RTOS
An open source embedded real-time operating system
Loading...
Searching...
No Matches
+ Collaboration diagram for DAC:

Data Structures

struct  rt_dac_ops
 
struct  rt_dac_device
 

Functions

rt_err_t rt_hw_dac_register (rt_dac_device_t dac, const char *name, const struct rt_dac_ops *ops, const void *user_data)
 
rt_err_t rt_dac_write (rt_dac_device_t dev, rt_uint32_t channel, rt_uint32_t value)
 
rt_err_t rt_dac_enable (rt_dac_device_t dev, rt_uint32_t channel)
 
rt_err_t rt_dac_disable (rt_dac_device_t dev, rt_uint32_t channel)
 

Detailed Description

DAC driver api.

Example

#include <rtthread.h>
#include <rtdevice.h>
#include <stdlib.h>
#define DAC_DEV_NAME "dac1"
#define DAC_DEV_CHANNEL 1
#define REFER_VOLTAGE 330
#define CONVERT_BITS (1 << 12)
static int dac_vol_sample(int argc, char *argv[])
{
rt_dac_device_t dac_dev;
rt_uint32_t value, vol;
rt_err_t ret = RT_EOK;
dac_dev = (rt_dac_device_t)rt_device_find(DAC_DEV_NAME);
if (dac_dev == RT_NULL)
{
rt_kprintf("dac sample run failed! can't find %s device!\n", DAC_DEV_NAME);
return -RT_ERROR;
}
ret = rt_dac_enable(dac_dev, DAC_DEV_CHANNEL);
value = atoi(argv[1]);
rt_dac_write(dac_dev, DAC_DEV_NAME, DAC_DEV_CHANNEL, value);
rt_kprintf("the value is :%d \n", value);
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
ret = rt_dac_disable(dac_dev, DAC_DEV_CHANNEL);
return ret;
}
MSH_CMD_EXPORT(dac_vol_sample, dac voltage convert sample);
rt_err_t rt_dac_write(rt_dac_device_t dev, rt_uint32_t channel, rt_uint32_t value)
set the value of DAC
rt_err_t rt_dac_disable(rt_dac_device_t dev, rt_uint32_t channel)
disable the DAC channel
rt_err_t rt_dac_enable(rt_dac_device_t dev, rt_uint32_t channel)
enable the DAC channel
rt_err_t rt_thread_mdelay(rt_int32_t ms)
This function will let current thread delay for some milliseconds.
Definition thread.c:754
#define MSH_CMD_EXPORT(...)
Exports a command to module shell.
Definition finsh.h:151

Function Documentation

◆ rt_hw_dac_register()

rt_err_t rt_hw_dac_register ( rt_dac_device_t dac,
const char * name,
const struct rt_dac_ops * ops,
const void * user_data )

Register a DAC device.

Parameters
dacDAC device
nameDAC name
opsthe operations of DAC device
user_datadevice private data
Returns
rt_err_t error code

◆ rt_dac_write()

rt_err_t rt_dac_write ( rt_dac_device_t dev,
rt_uint32_t channel,
rt_uint32_t value )

set the value of DAC

Parameters
devDAC device
channelDAC channel
valuethe value of DAC
Returns
rt_err_t error code

◆ rt_dac_enable()

rt_err_t rt_dac_enable ( rt_dac_device_t dev,
rt_uint32_t channel )

enable the DAC channel

Parameters
devDAC device
channelDAC channel
Returns
rt_err_t error code

◆ rt_dac_disable()

rt_err_t rt_dac_disable ( rt_dac_device_t dev,
rt_uint32_t channel )

disable the DAC channel

Parameters
devDAC device
channelDAC channel
Returns
rt_err_t error code