华芯微特MCU之TIMER触发ADC

01 TIMER定时器之脉冲发送功能

我们今天详细讲解一下TIMER的ADC触发功能。

SWM190的TIMER2/3支持SAR ADC触发功能,此功能配置为定时器或脉冲发送均有效,可通过配置相应寄存器实现。

将SAR ADC CTRL寄存器中TRIG设置为TIMER2触发或TIMER3触发。TIMER可作为定时器或计数器(支持级联)使用。当对应TIMER计数值减至0时,将触发ADC CTRL寄存器中选中的通道(CHx)进行采样。可以通过ADC采样完成中断进行结果获取。

TIMER触发支持单次模式和连续模式,且支持多次采样求平均值。

02 SWM190 TIMER触发ADC功能库函数配置

下面我们以ADC触发为例,使用加强型定时器,使用TIMR3的定时器模式触发ADC0的CH3。在此例程中,我们将用A13作为ADC0的采样通道,一次启动连续采样、转换2次,并计算两次结果的平均值作为转换结果。

我们之前有讲到PORT的配置方法,在这里就不在做赘述,将A13引脚通过PORT_Init设置为ADC的输入功能引脚(PORTA_PIN13_ADC0_IN3),并将TIMER0模块功能在TIMR_Init初始化为定时器模式(TIMR_MODE_TIMER)。

下面是一个简单的ADC配置函数。

ADC_initStruct.clk_src=ADC_CLKSRC_HRC_DIV8;

ADC_initStruct.channels = ADC_CH3;

ADC_initStruct.samplAvg= ADC_AVG_SAMPLE2;

ADC_initStruct.trig_src = ADC_TRIGGER_TIMR3;

ADC_initStruct.Continue = 0;

//非连续模式,即单次模式

ADC_initStruct.EOC_IEn = 0;

ADC_initStruct.OVF_IEn = 0;

ADC_Init(ADC0,&ADC_initStruct);

//配置ADC

我们通过结构体的方式配置ADC,使用ADC0的CH3通道进行采样,触发源为TMIER3,单次触发模式,一次启动连续采样、转换2次,并计算两次结果的平均值作为转换结果。

具体配置函数如下图所示:

03 实验现象

下载好程序后,串口会打印A13端口的电压值对应的ADC值。

以上是关于TIMER的ADC触发功能介绍。

相关推荐
2501_944934735 小时前
大专大数据管理与应用专业,怎么自学数据治理相关知识?
人工智能
芷栀夏5 小时前
CANN ops-math:从矩阵运算到数值计算的全维度硬件适配与效率提升实践
人工智能·神经网络·线性代数·矩阵·cann
Yuer20255 小时前
为什么说在真正的合规体系里,“智能”是最不重要的指标之一。
人工智能·edca os·可控ai
一切尽在,你来5 小时前
1.4 LangChain 1.2.7 核心架构概览
人工智能·langchain·ai编程
爱吃大芒果5 小时前
CANN ops-nn 算子开发指南:NPU 端神经网络计算加速实战
人工智能·深度学习·神经网络
聆风吟º5 小时前
CANN ops-nn 实战指南:异构计算场景中神经网络算子的调用、调优与扩展技巧
人工智能·深度学习·神经网络·cann
2601_949593655 小时前
CANN加速人脸检测推理:多尺度特征金字塔与锚框优化
人工智能
小刘的大模型笔记5 小时前
大模型LoRA微调全实战:普通电脑落地,附避坑手册
人工智能·电脑
乾元5 小时前
身份与访问:行为生物识别(按键习惯、移动轨迹)的 AI 建模
运维·网络·人工智能·深度学习·安全·自动化·安全架构
happyprince5 小时前
2026年02月07日全球AI前沿动态
人工智能