NANO100_BSP V3.04.002
The Board Support Package for Nano100BN Series
NuEdu-Basic01_ADC_Knob.c
Go to the documentation of this file.
1#include <stdio.h>
2#include "Nano100Series.h"
4
5#define _ADC_Source_Clock 12000000 // from 12MHz XTAL
6uint32_t ADC_Clock = 300000; // 300 kHz, ADC_F_Max = 42M
8
10{
11 uint32_t ADC_Source_Clock_DIV;
12
13 //Initial ADC Function Pin
14 SYS->PA_L_MFP = (SYS->PA_L_MFP & ~SYS_PA_L_MFP_PA0_MFP_Msk) | SYS_PA_L_MFP_PA0_MFP_ADC_CH0;
16
17 //Initial ADC Clock Source
18 while(ADC_IS_BUSY(ADC)); //Safe for other unknown ADC device
20 ADC_Source_Clock_DIV = _ADC_Source_Clock / ADC_Clock;
21 if(ADC_Source_Clock_DIV>256)
22 {
24 ADC_Source_Clock_DIV = 256;
26 printf("\nADC Clock Initial Fail!\n");
27 }
28 else
29 {
31 // printf("\nADC Clock Initial Pass!\n");
32 }
33
34// SYS_ResetModule(ADC_RST); //Donot Reset ADC, Safe for other unknown ADC device
38
39 //Initial ADC Peripheral
45}
46
48{
49 //Close ADC Function Pin
50 SYS->PA_L_MFP &= ~SYS_PA_L_MFP_PA0_MFP_Msk;
52// _ADC_DISABLE_CHANNEL(7);
53
54 if(!(ADC->CHEN&ADC_CHEN_Msk)) //Donot Cloce ADC, Safe for other unknown ADC device
55 {
56 //Close ADC Clock Source
61 }
62}
63
64uint32_t Get_Volume_Knob(void)
65{
66 uint32_t ADC_Raw_Data;
67
68 //Start ADC Coversion
72 ADC_Raw_Data = ADC_GET_CONVERSION_DATA(ADC, 0);
73
74 return ADC_Raw_Data;
75}
Nano100 series peripheral access layer header file. This file contains all the peripheral register's ...
#define _ADC_Source_Clock
uint32_t ADC_Clock
#define ADC_REFSEL_POWER
Definition: adc.h:74
#define ADC_OPERATION_MODE_SINGLE_CYCLE
Definition: adc.h:66
#define ADC_CH_0_MASK
Definition: adc.h:33
#define ADC_ADF_INT
Definition: adc.h:60
#define ADC_INPUT_MODE_SINGLE_END
Definition: adc.h:63
#define ADC_CHEN_Msk
Definition: adc.h:51
#define ADC_RESSEL_12_BIT
Definition: adc.h:73
#define ADC_GET_CONVERSION_DATA(adc, u32ChNum)
Get the latest ADC conversion data.
Definition: adc.h:92
#define ADC_CLR_INT_FLAG(adc, u32Mask)
This macro clear the selected interrupt status bits.
Definition: adc.h:116
void ADC_Open(ADC_T *adc, uint32_t u32InputMode, uint32_t u32OpMode, uint32_t u32ChMask)
This API configures ADC module to be ready for convert the input from selected channel.
Definition: adc.c:41
#define ADC_GET_INT_FLAG(adc, u32Mask)
Return the user-specified interrupt flags.
Definition: adc.h:104
#define ADC_POWER_ON(adc)
Power on ADC module.
Definition: adc.h:166
#define ADC_SET_REF_VOLTAGE(adc, u32Ref)
Set the reference voltage selection.
Definition: adc.h:297
#define ADC_SET_RESOLUTION(adc, u32Resolution)
Set the resolution of conversion result.
Definition: adc.h:285
#define ADC_IS_BUSY(adc)
Get the busy state of ADC.
Definition: adc.h:128
#define ADC_START_CONV(adc)
Start the A/D conversion.
Definition: adc.h:253
#define ADC_MODULE
Definition: clk.h:305
#define CLK_ADC_CLK_DIVIDER(x)
Definition: clk.h:191
#define CLK_CLKSEL1_ADC_S_HXT
Definition: clk.h:132
void CLK_EnableModuleClock(uint32_t u32ModuleIdx)
This function enable module clock.
Definition: clk.c:436
void CLK_DisableModuleClock(uint32_t u32ModuleIdx)
This function disable module clock.
Definition: clk.c:478
void CLK_SetModuleClock(uint32_t u32ModuleIdx, uint32_t u32ClkSrc, uint32_t u32ClkDiv)
This function set selected module clock source and module clock divider.
Definition: clk.c:339
#define GPIO_DISABLE_DIGITAL_PATH(gpio, u32PinMask)
Disable I/O Digital Input Path.
Definition: gpio.h:241
#define GPIO_ENABLE_DIGITAL_PATH(gpio, u32PinMask)
Enable I/O Digital Input Path.
Definition: gpio.h:253
#define ADC
Pointer to ADC register structure.
#define PA
Pointer to GPIO port A register structure.
#define SYS
Pointer to SYS register structure.
#define SYS_PA_L_MFP_PA0_MFP_ADC_CH0
Definition: sys.h:147
#define ADC_RST
Definition: sys.h:42
__STATIC_INLINE void SYS_LockReg(void)
Enable register write-protection function.
Definition: sys.h:843
void SYS_ResetModule(uint32_t u32ModuleIndex)
This function reset selected modules.
Definition: sys.c:129
__STATIC_INLINE void SYS_UnlockReg(void)
Disable register write-protection function.
Definition: sys.h:826
#define TRUE
Boolean true, define to use in API parameters or return value.
#define FALSE
Boolean false, define to use in API parameters or return value.
#define BIT0
Bit 0 mask of an 32 bit integer.
uint32_t Open_Volume_Knob_Fail
void Close_Volume_Knob(void)
void Open_Volume_Knob(void)
uint32_t Get_Volume_Knob(void)