|
/************************************************************************************************
* @brief 初始化滚轮电阻功能模块
* @param none
* @return none
* ————
* |
* Tiva PE0|<--ADC 滚轮电阻ADC采样
* ________|
*
* 滚轮电阻连接至PE0口,使用该口的ADC功能进行采样,获取滚轮电阻值
*
************************************************************************************************/
void Init_ADCWheel()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); //使能ADC0功能外设
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); //使能ADC0使用的端口
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_0); //PE0配置成ADC模式
ADCSequenceConfigure(ADC_BASE, ADCWheel_Sequence, ADC_TRIGGER_PROCESSOR, 0); //使能序列0,处理器触发ADC采样
ADCSequenceStepConfigure(ADC_BASE, ADCWheel_Sequence, 0, ADC_CTL_CH3 | ADC_CTL_IE | //使用序列0,步进0,通道3(CH3<-->PE0)采样
ADC_CTL_END); //并且产生中断,结束采样
ADCSequenceEnable(ADC_BASE, ADCWheel_Sequence); //使能ADC0采样序列
ADCIntClear(ADC_BASE, ADCWheel_Sequence); //清除中断标志
}
/********************************************************************************************************
* @brief 获取滚轮采样值
* @param *pui32ADCValue,滚轮电阻采样值存放的地址
* @return none
* ————
* |
* Tiva PE0|<--ADC 滚轮电阻ADC采样
* ________|
********************************************************************************************************/
void ADCWheel_ValueGet(uint32_t *pui32ADCValue)
{
ADCProcessorTrigger(ADC_BASE, ADCWheel_Sequence); //处理器触发采样
while(!ADCIntStatus(ADC_BASE, ADCWheel_Sequence, false)) //等待采样结束
{
}
ADCIntClear(ADC_BASE, ADCWheel_Sequence); //清除中断标志
ADCSequenceDataGet(ADC_BASE, ADCWheel_Sequence, pui32ADCValue); //获取采样值
}
/************************************************************************************************
* @brief 初始化定时采样功能模块
* @param none
* @return none
* ————
* |
* Tiva PB4|<--sing 外部信号ADC采样
* ________|
*
* 语音信号放大后连接至PE0口,使用该口的ADC功能进行采样
*
************************************************************************************************/
void Init_ADCWheel_1()
{
// 使能 ADC0外设
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC1);
// 使能Port B外设端口
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
// 选择PB4作为模数装换ADC的管脚
GPIOPinTypeADC(GPIO_PORTB_BASE, GPIO_PIN_4);
// 配置采样序列的触发源和优先级
ADCSequenceConfigure(ADC1_BASE, SequenceNum, ADC_TRIGGER_PROCESSOR, 0);
// 配置采样序列发生器的步进
ADCSequenceStepConfigure(ADC1_BASE, SequenceNum, 0, ADC_CTL_CH10 | ADC_CTL_IE |
ADC_CTL_END);
// 使能一个采样序列
ADCSequenceEnable(ADC1_BASE, SequenceNum);
// 清除采样序列中断源
ADCIntClear(ADC1_BASE, SequenceNum); //清除中断标志
}
/********************************************************************************************************
* @brief
* @param *pui32ADCValue
* @return none
* ————
* |
* Tiva PB4|<--ADC_音频 ADC采样
* ________|
********************************************************************************************************/
void ADCWheel_ValueGet_1(uint32_t *pui32ADCValue)
{
//##################################################
ADCProcessorTrigger(ADC1_BASE, SequenceNum);
// 等待完成AD转换
while(!ADCIntStatus(ADC1_BASE, SequenceNum, false))
{
}
// 清楚ADC中断标志位
ADCIntClear(ADC1_BASE, SequenceNum);
// 读取ADC值
ADCSequenceDataGet(ADC1_BASE, SequenceNum,pui32ADCValue);
/////sample_Bridge_Average = pui32ADC0Value[0];
//##############################################//
}
|
|