任何人都可以帮助我在DAC下面的情况

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了任何人都可以帮助我在DAC下面的情况相关的知识,希望对你有一定的参考价值。

我正在编写一个程序,将数字电压值以位为单位发送到DAC(SAM4E),以获得模拟输出。该计划如下:

#include "asf.h"
#include "conf_board.h"
#include "conf_clock.h"
#include "dacc_example.h"

int main (void)
{

sysclk_init();
board_init();


/* Reset DACC registers */
dacc_reset(DACC_BASE);

/* Half word transfer mode */
dacc_set_transfer_mode(DACC_BASE, 0);


dacc_set_timing(DACC_BASE,0, 0x10);


/* Disable TAG and select output channel DACC_CHANNEL */
dacc_set_channel_selection(DACC_BASE, DACC_CHANNEL);

/* Enable output channel DACC_CHANNEL */
dacc_enable_channel(DACC_BASE, DACC_CHANNEL);

/* Set up analog current */
dacc_set_analog_control(DACC_BASE, DACC_ANALOG_CONTROL);


uint32_t dac_val = 0;

while (1)
  {

// set voltage to minimum

#define SET_DAC_VAL 0x000

//set voltage to midpoint


// set voltage to 2.7V


//set voltage to 3.2V

//write the conversion value
dacc_write_conversion_data(DACC_BASE, SET_DAC_VAL, DACC_CHANNEL);
}
}

在上面的代码中,我配置了DAC,在while循环中,我试图将数字值发送到数据转换寄存器。我想将电压设置为最小,中点,2.7V和3.2V。最大电压为3.3v,DAC为12位分辨率。

任何人都可以帮我设置电压??或者我可以知道我们如何以12位二进制格式表示2.7 V?

答案

任何人都可以帮我设置电压??

设置电压取决于您与DAC的交互方式。假设您使用的是微控制器,那么您需要参考数据表。它将描述DAC模块中的寄存器及其工作原理。大多数时候也有代码示例。

我可以知道我们如何以12位二进制格式表示2.7 V?

您的DAC具有12位分辨率。这意味着您有12位表示要在DAC上输出的电压值。这意味着您可以表示2 ^ 12 - 1个增量。假设DAC具有3.3V的参考电压,则每个增量为3.3 /(2 ^ 12-1)伏。因此,如果我们想要2.7V,它将由值2.7 /(3.3 /(2 ^ 12 - 1))= 3350表示。

以上是关于任何人都可以帮助我在DAC下面的情况的主要内容,如果未能解决你的问题,请参考以下文章

如何从请求中获取 SAMLResponse

片段之间的共享数据(父列表视图和子列表视图)

我在创建这种类型的 Play 商店应用程序图标时遇到了麻烦,任何人都可以帮助我

如何在不重新启动服务器的情况下克服 Permgen 空间异常..,任何人都可以帮助我

PHP必用代码片段

使用mockito以负方法编写测试用例