2.1. ADC12
2.1.1. 概述
本示例展示ADC12在四种工作模式的转换及结果显示
注:
当ADC配置为非读取转换(oneshot)模式时,不能读取ADC寄存器列表,否则会出现总线阻塞
当ADC配置为读取转换 (oneshot)模式时, CPU必须在ADC完成初始化以后,才可以读取ADC寄存器列表
2.1.2. 硬件设置
在指定的管脚输入电压 (请参考引脚描述部分)
注: ADC管脚的输入电压范围: 0~VREFH
2.1.3. 运行现象
串口终端显示如下信息
This is an ADC12 demo:
1. Oneshot mode
2. Period mode
3. Sequence mode
4. Preemption mode
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...):
选择ADC转换模式,启动ADC转换,并观察转换结果
Oneshot 模式
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 1 Oneshot Mode - ADC0 [channel 11] - Result: 0x0ffb Oneshot Mode - ADC0 [channel 11] - Result: 0x0ffb Oneshot Mode - ADC0 [channel 11] - Result: 0x0ffb
Period 模式
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 2 Period Mode - ADC0 [channel 11] - Result: 0x0ffb Period Mode - ADC0 [channel 11] - Result: 0x0fff Period Mode - ADC0 [channel 11] - Result: 0x0ffd
Sequence 模式
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 3 Sequence Mode - ADC0 - Cycle Bit: 01 - Sequence Number:00 - ADC Channel: 11 - Result: 0x0fff Sequence Mode - ADC0 - Cycle Bit: 00 - Sequence Number:00 - ADC Channel: 11 - Result: 0x0ffb Sequence Mode - ADC0 - Cycle Bit: 01 - Sequence Number:00 - ADC Channel: 11 - Result: 0x0ff7
Preemption 模式
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 4 Preemption Mode - ADC0 - Trigger Channel: 11 - Cycle Bit: 01 - Sequence Number: 00 - ADC Channel: 11 - Result: 0x0ff9 Preemption Mode - ADC0 - Trigger Channel: 11 - Cycle Bit: 01 - Sequence Number: 00 - ADC Channel: 11 - Result: 0x0ff9 Preemption Mode - ADC0 - Trigger Channel: 11 - Cycle Bit: 01 - Sequence Number: 00 - ADC Channel: 11 - Result: 0x0ff9
2.1.4. 注意
如何使用WDOG功能
通道初始化
设置ch_cfg. wdog_int_en为true
设置ch_cfg.thshdh/ch_cfg.thshdl
ch_cfg.thshdh/ch_cfg.thshdl可配置范围从0~4095,如果任何一次ADC的转换结果超出阈值,WDOG中断将会产生。
调用adc16_init_channel () API
中断服务程序
根据ADC通道设置一个或多个WDOG事件标志
禁用一个或多个相应的WDOG中断
主循环
处理WDOG事件
使能一个或多个相应的WDOG中断
触发源
本示例中使用PWM作为序列模式和抢占模式的触发源,也可以选择其他外设作为触发源
触发信号频率(默认为20KHz)可以在sample级的CMakeLists.txt中重新定义(例如:sdk_compile_definitions(-DAPP_ADC12_TRIG_SRC_FREQUENCY=20000))
异常退出
按空格键退出测试,重新选择测试模式