Discuz! Board

标题: TM4C 多通道采集有人试过没? [打印本页]

作者: 顽石    时间: 2013-12-27 16:25
标题: TM4C 多通道采集有人试过没?
TM4C 多通道采集有人试过没? 中午搞了半个小时,没弄出来。。。。。。。
作者: admin    时间: 2013-12-27 17:50
这个我还没试过哦,应该比较简单呀
作者: 包子    时间: 2014-6-17 17:55
同求,搞了一下午,没搞出来
作者: walkerchan    时间: 2014-8-17 17:43

/************************************************************************************************
* @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];
                //##############################################//
                }





欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3