2.2. ADC16
2.2.1. Overview
This example shows ADC16 conversions and results in four working modes.
Notes:
When ADC is configured to non-bus-read (oneshot) mode, it can’t be accessed otherwise bus will be stuck.
When ADC is configured to bus-read (oneshot) mode, CPU has to complete initialization before accessing to the ADC register list.
2.2.2. Board Setting
Input voltage at the specified pin. (Please refer to Pin Description)
If necessary, connect a jumper for VREF pin according to the HW design. (Please refer to Pin Description)
Note: The input voltage range at ADC input pins: 0~VREFH
2.2.3. Running the example
Running log is shown in the serial terminal as follows
This is an ADC16 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 ...):
Select one of ADC working modes to start ADC conversion, and then watch conversion results
Oneshot mode
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 1 Oneshot Mode - ADC3 [channel 2] - Result: 0xffe8 Oneshot Mode - ADC3 [channel 2] - Result: 0xfff4 Oneshot Mode - ADC3 [channel 2] - Result: 0xffff
Period mode
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 2 Period Mode - ADC3 [channel 2] - Result: 0xfff3 Period Mode - ADC3 [channel 2] - Result: 0xfff5 Period Mode - ADC3 [channel 2] - Result: 0xfff7
Sequence mode
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 3 Sequence Mode - ADC3 - Cycle Bit: 01 - Sequence Number:00 - ADC Channel: 02 - Result: 0xffff Sequence Mode - ADC3 - Cycle Bit: 00 - Sequence Number:00 - ADC Channel: 02 - Result: 0xffd9 Sequence Mode - ADC3 - Cycle Bit: 01 - Sequence Number:00 - ADC Channel: 02 - Result: 0xffff
Preemption mode
Please enter one of ADC conversion modes above (e.g. 1 or 2 ...): 4 Preemption Mode - ADC3 - Trigger Channel: 00 - Cycle Bit: 01 - Sequence Number: 00 - ADC Channel: 02 - Result: 0xffff Preemption Mode - ADC3 - Trigger Channel: 00 - Cycle Bit: 01 - Sequence Number: 00 - ADC Channel: 02 - Result: 0xffff Preemption Mode - ADC3 - Trigger Channel: 00 - Cycle Bit: 01 - Sequence Number: 00 - ADC Channel: 02 - Result: 0xffff
2.2.4. Note
How to use WDOG feature
Channel initialization
Set ch_cfg. wdog_int_en to true
Set ch_cfg.thshdl/ch_cfg.thshdh
The ch_cfg.thshdl/ch_cfg.thshdh can be configured from 0 to 65535. If any ADC conversion result is out of the thresholds (thshdl, thsdhh), a WDOG interrupt will occur.
Call adc16_init_channel () API.
ISR
Set one or more WDOG event flags depending on ADC channels
Disable one or more corresponding WDOG interrupts
Main loop
Handle with WDOG events
Enable one or more corresponding WDOG interrupts
Trigger source
In this sample, for sequence mode and preemption mode, PWM is selected as the trigger source. Other peripherals can also be selected as the trigger source.
The frequency of the trigger signal(20KHz by default) can be configured in sample-level CMakeLists.txt(e.g. sdk_compile_definitions(-DAPP_ADC16_TRIG_SRC_FREQUENCY=20000))
Exception exit
Press the “space” key to abort the test, and then a test mode can be reselected.