主题中讨论的其他器件:TM4C123
大家好、
感谢大家在我之前的帖子中提供的帮助。
今天我正在开发一个新项目、在这个项目中、我遇到了 ADC 输入数据读取问题。 我 使用 ADC0 base 和采样序列1 (SS1)进行数据读取。我遇到的问题是、如果我对其中的任何一个通道应用输入、实际上我想获取输出特定通道、但我得到的是全部四个通道的采样输出。 在这里、我使用处理器触发器来触发 ADC。
请找到以下代码、如果代码中有任何错误、请向我提出建议。
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
#include "driverlib/fpu.h"
#include "driverlib/gpio.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"
#include "inc/hw_gpio.h"
#include "inc/hw_ints.h"
#include "inc/hw_adc.h"
#include "inc/hw_types.h"
#include "DriverLib/ADC.h"
#include "DriverLib/interrupt.h"
#include "DriverLib/PWM.h"
#include "DriverLib/timer.h"
unsigned int pui32ADC0Value[4];
extern int keypad_rot;
uint32_t ch0、ch1;
void ADC0IntHandler (void);
#ifdef 调试
无效
_error__(char * pcFilename、uint32_t ui32Line)
{
}
#endif
无效
Timer1IntHandler (空)
{
TimerIntClear (Timer1_base、timer_TINA_TIMEOUT);
data_disp();
}
无效
ADC0IntHandler (空)
{
ADCIntClear (ADC0_BASE、1);
ADCSequenceDataGet (ADC0_BASE、1、pui32ADC0Value);
ch0= pui32ADC0Value[0];
CH1=pui32ADC0Value[1];
}
内部
main (空)
{
SysCtlClockSet (SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
SYSCTL_XTAL_16MHz);
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
SysCtlPeripheralEnable (SYSCTL_Periph_Timer1);
SysCtlDelay (5000);
SysCtlPeripheralClockGating (真);
IntMasterEnable();
IntPrioritySet (INT_ADC0SS1_TM4C123、0x00);
IntPrioritySet (INT_TIMER1A、0x20);
lcd_priphy_config();
lcdinit();
TimerConfigure (Timer1_base、timer_CFG_A_PERIODICRACRACASE);
TimerLoadSet (Timer1_base、timer_A、(4*SysCtlClockGet ()));
IntEnable (INT_TIMER1A);
TimerIntEnable (Timer1_base、timer_TINA_TIMEOUT);
TimerEnable (Timer1_base、timer_A);
ADCSequenceDisable (ADC0_BASE、1);
ADCSequenceConfigure (ADC0_BASE、1、ADC_TRIGGER_PROCESSOR、0);
ADCSequenceStepConfigure (ADC0_BASE、1、0、ADC_CTL_CH0);
ADCSequenceStepConfigure (ADC0_BASE、1、1、ADC_CTL_CH1);
ADCSequenceStepConfigure (ADC0_BASE、1、2、ADC_CTL_CH2);
ADCSequenceStepConfigure (ADC0_BASE、1、3、ADC_CTL_CH13 | ADC_CTL_IE |
ADC_CTL_END);
ADCSequenceEnable (ADC0_BASE、1);
ADCProcessorTrigger (ADC0_BASE、1);
ADCIntEnable (ADC0_BASE、1);
IntEnable (INT_ADC0SS1);
}
我将通过 Tiva 示例的参考来开发此代码。
如果我将输入应用于任何一个通道,请告诉我为什么我会在两个通道输出 ch0和 ch1中获得输出。
谢谢、
此致、
Srinu.V