打印

DAC问题

[复制链接]
134|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhjb1|  楼主 | 2024-11-13 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用Work_Bench创建了一个AT的工程,在做实验时能遇到一些问题,以后慢慢提问并解决。如果解决了,会将代码放上一起学习。
四、DAC问题,初始化代码没有问题,初始化代码如下:void wk_dac_init(void)
{
  /* add user code begin dac_init 0 */

  /* add user code end dac_init 0 */
  gpio_init_type gpio_init_struct;
  gpio_default_para_init(&gpio_init_struct);

  /* add user code begin dac_init 1 */

  /* add user code end dac_init 1 */

  /*gpio------------------------------------------------------------------------------*/
  /* configure the OUT1 pin */
  gpio_init_struct.gpio_pins = DAC1_PIN;
  gpio_init_struct.gpio_mode = GPIO_MODE_ANALOG;
  gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  gpio_init(DAC1_GPIO_PORT, &gpio_init_struct);

  /* configure the OUT2 pin */
  gpio_init_struct.gpio_pins = DAC2_PIN;
  gpio_init_struct.gpio_mode = GPIO_MODE_ANALOG;
  gpio_init_struct.gpio_pull = GPIO_PULL_NONE;
  gpio_init(DAC2_GPIO_PORT, &gpio_init_struct);

  /*dac OUT1 init--------------------------------------------------------------------*/
  dac_trigger_enable(DAC1_SELECT, TRUE);
  dac_trigger_select(DAC1_SELECT, DAC_SOFTWARE_TRIGGER);
  dac_wave_generate(DAC1_SELECT, DAC_WAVE_GENERATE_TRIANGLE);
  /*Triangular amplitude select------------------------------------------------------*/
  dac_mask_amplitude_select(DAC1_SELECT, DAC_LSFR_BITB0_AMPLITUDE_4095);//DAC_LSFR_BIT10_AMPLITUDE_3);//

  dac_output_buffer_enable(DAC1_SELECT, TRUE);

  dac_dma_enable(DAC1_SELECT, TRUE);

  dac_enable(DAC1_SELECT, TRUE);

  /*dac OUT2 init--------------------------------------------------------------------*/
  dac_trigger_enable(DAC2_SELECT, TRUE);
  dac_trigger_select(DAC2_SELECT, DAC_SOFTWARE_TRIGGER);
  dac_wave_generate(DAC2_SELECT, DAC_WAVE_GENERATE_TRIANGLE);
  /*Triangular amplitude select------------------------------------------------------*/
  dac_mask_amplitude_select(DAC2_SELECT, DAC_LSFR_BITA0_AMPLITUDE_2047);//DAC_LSFR_BIT90_AMPLITUDE_1023);//DAC_LSFR_BIT20_AMPLITUDE_7);//

  dac_output_buffer_enable(DAC2_SELECT, TRUE);

  dac_enable(DAC2_SELECT, TRUE);

  /* add user code begin dac_init 2 */

  /* add user code end dac_init 2 */
}
初始化后PA_4,PA_5没有动静,将这两行放入一段代码中,
dac_software_trigger_generate(DAC1_SELECT);
dac_software_trigger_generate(DAC2_SELECT);
DAC三角波就出来了,速度非常慢,我选择的是软件触发,就将这两行放到AT32F403a_407_int.c中的tick函数中,结果是能出来稍快一点的三角波,并且比较圆滑。看厂家提供的工程是采用time2触发DAC,如果仅仅用软件触发我的方法肯定不对,但应该如何写呢?
谢谢


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

218

帖子

1

粉丝