请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 我正在尝试对声纳传感器的 PE3进行采样、但我的代码从未进入 ISR。 我已使用"adc_read_fxn"处理程序更新了矢量表、但始终会以"没有可用于"0xfffffe" 错误的源"结束。 如果有任何帮助,将不胜感激。
#include "sonar_init.h" float distInch; volatile unsigned int proflag=0; void sonarInit (void) { //SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHz); SysCtlPeripheralEnable (SYSCTL_Periph_ADC0); SysCtlPeripheralReset (SYSCTL_Periph_ADC0); ADCSequenceDisable (ADC0_BASE、3); ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0); ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE); GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3); ADCIntRegister (ADC0_BASE、3、&ADC_READ_Fxn); ADCIntEnable (ADC0_BASE、3);\ ADCIntClear (ADC0_BASE、3); ADCSequenceEnable (ADC0_BASE、3); IntMasterEnable(); } void main (void) { sonarInit(); while (1){ if (proflag=0){ ADCProcessorTrigger (ADC0_BASE、3); proflag=1; } } void adc_read_fxn (void) { ADCIntClear (ADC0_BASE、3); while (!ADCIntStatus (ADC0_BASE、3、false)); uint32_t rawADC; ADCSequenceDataGet (ADC0_BASE、3、&rawADC); distInch=rawADC*102.4; proflag=0; }