当前位置: 首页 > news >正文

7-ATSAM3X8-DAC输出

ATSAM3X8-单通道ADC采样

1.寄存器方式

static void configure_dual_dac(void)
{// 1. 启用DAC外设时钟pmc_enable_periph_clk(ID_DACC);// 2. 软件复位DACDACC->DACC_CR = DACC_CR_SWRST;// 3. 配置模式寄存器DACC->DACC_MR = 0| DACC_MR_TRGEN_DIS          // 禁用硬件触发| DACC_MR_USER_SEL_CHANNEL0  // 选择通道0(这个字段在双通道模式下可能被忽略)| DACC_MR_REFRESH(1)         // 刷新周期| DACC_MR_STARTUP_0;         // 启动时间// 4. 配置模拟控制寄存器// IBCTLCH0/1 = 0x02 提供最佳输出电流DACC->DACC_ACR = DACC_ACR_IBCTLCH0(0x02) | DACC_ACR_IBCTLCH1(0x02);// 5. 同时启用两个通道DACC->DACC_CHER = DACC_CHER_CH0 | DACC_CHER_CH1;}
static void dac_output(uint32_t channel, uint16_t value)
{if (value > 4095) value = 4095;// 等待就绪while ((DACC->DACC_ISR & DACC_ISR_TXRDY) == 0);// 先选择通道,然后写入数据// 设置通道选择uint32_t mr = DACC->DACC_MR;mr &= ~DACC_MR_USER_SEL_Msk; // 清除之前的通道选择if (channel==0)mr |= DACC_MR_USER_SEL_CHANNEL0; // 设置新通道else mr |= DACC_MR_USER_SEL_CHANNEL1; // 设置新通道DACC->DACC_MR = mr;// 写入数据DACC->DACC_CDR = value;}

2.ASF3方式

static void configure_dual_dac(void)
{// 启用DAC时钟pmc_enable_periph_clk(ID_DACC);// 配置基本参数dacc_set_transfer_mode(DACC, 0); // 正常模式dacc_set_power_save(DACC, 0, 0); // 禁用节能模式// 配置模拟控制uint32_t analog_control = DACC_ACR_IBCTLCH0(0x02) | DACC_ACR_IBCTLCH1(0x02);dacc_set_analog_control(DACC, analog_control);// 启用两个通道dacc_enable_channel(DACC, 0); // DAC0dacc_enable_channel(DACC, 1); // DAC1}
static void dac_output(uint32_t channel, uint16_t value)
{if (value > 4095) value = 4095;// 等待就绪while ((DACC->DACC_ISR & DACC_ISR_TXRDY) == 0);// 先选择通道,然后写入数据// 设置通道选择uint32_t mr = DACC->DACC_MR;mr &= ~DACC_MR_USER_SEL_Msk; // 清除之前的通道选择if (channel==0)mr |= DACC_MR_USER_SEL_CHANNEL0; // 设置新通道else mr |= DACC_MR_USER_SEL_CHANNEL1; // 设置新通道DACC->DACC_MR = mr;// 写入数据DACC->DACC_CDR = value;}
http://www.dtcms.com/a/361800.html

相关文章:

  • 网络与信息安全有哪些岗位:(13)安全服务工程师 / 顾问
  • 机器学习——损失函数
  • leetcode-python-1796字符串中第二大的数字
  • LeetCode82删除排序链表中的重复元素 II
  • wpf之样式
  • 嵌入式解谜日志之Linux操作系统—共享内存
  • Python备份实战专栏第5/6篇:Docker + Nginx 生产环境一键部署方案
  • 基于多种分词算法的词频统计的中文分词系统的设计与实现
  • 信创之-麒麟v10服务器安装tengine(已完成)
  • 推荐系统中Redis 数据存储:二进制序列化协议选型与优化
  • linux连接服务器sftp无法输入中文
  • 基于SpringBoot的教务管理系统(源码+文档)
  • C/C++ Linux系统编程:进程通讯完全指南,管道通讯、共享内存以及消息队列
  • 零基础从头教学Linux(Day 25)
  • vue3使用Eslint
  • B样条曲线在节点u处添加节点的操作方法
  • 心率监测系统优化方案全解析
  • 火语言 RPA:轻松生成界面应用,让开发触手可及​
  • 求欧拉回路:Hierholzer算法图解模拟
  • 计算机网络技术(四)完结
  • 算法题-02
  • 大型语言模型监督微调(SFT)
  • GitLab 18.3 正式发布,更新多项 DevOps、CI/CD 功能【二】
  • MiniCPM-V-4.5:重新定义边缘设备多模态AI的下一代视觉语言模型
  • 前端测试深度实践:从单元测试到E2E测试的完整测试解决方案
  • Axios与Ajax:现代Web请求大比拼
  • 新手向:前端开发中的常见问题
  • Laser Lorentzian Lineshape
  • 进程控制之进程创建与终止
  • Vue3+TS 流星夜景