工具/软件:Code Composer Studio
大家好,我需要一些代码方面的帮助,我已经配置了ADC和TA1模块,以便ADC转换由TA1触发,但这似乎是错误的,TA1中断工作正常,但ADC未被触发。
对于ADC:
//Configuro引脚para ADC GPIO _setAsPeripheralModuleFunctionOutputPin (GPIO端口P1,GPIO PIN2,GPIO三元模块功能); //参数配置 ADC12_B_initParam initParam ={0}; initParam.sampleHoldSignalSourceSelect = ADC12_B_SAMPLEHOLDSOURCE_4;//dediso POR计时器A1 CCR1 initParam.clockSourceSelect = ADC12_B_CLOCKSOURCE_ADC12OSC; initParam.clockSourceDivider = ADC12_B_CLOCKDIVIDER_1; initParam.clockSourcePrediver= ADC12_B_CLOCKPREDIER__1; initParam.internalChannelMap = ADC12_B_NOINTCH; ADC12_B_INIT (ADC12_B_BASE,&initParam); //Activo ADC_12 para iniciizacion ADC12_B_ENABLE (ADC12_B_BASE); ADC12_B_setupSamplingTimer (ADC12_B_BASE,ADC12_B_CYCLEHOLD_16_CYCLES,ADC12_B_CYCLEHOLD_4_CYCLES,ADC12_B_MULTIPLESAMPLESDISABLE); //配置ADCMEM ADC12_B_configureMemoryParam配置MemoryParam ={0}; configureMemoryParam.memoryBufferControlIndex = ADC12_B_memory_0; configureMemoryParam.inputSourceSelect = ADC12_B_Input_A2; 配置内存Param.refVoltageSourceSelect = ADC12_B_VREFPOS_AVCC_VREFNEG_VSS; configureMemoryParam.endOfSequence = ADC12_B_NOTENDOFENCE; 配置内存Param.windowComparatorSelect = ADC12_B_window_Comparer_disable; 配置内存Param.DifferalModeSelect = ADC12_B_Different_mode_disable; ADC12_B_configureMemory (ADC12_B_BASE,&configureMemoryParam); ADC12_B_clearInterrupt (ADC12_B_B_BASE,0,ADC12_B_IFG0); //Interrupcion para ADC //ADC12_B_enableInterrupe(ADC12_B_base, ADC12_B_IE0,0);//Configuro DMA para ADC dma_initParam参数={0}; param.channelSelect = dma_channel_0; para.transferModeSelect = dma_transfer_single; Param.transferSize =10; PARAM.TriggerSourceSelect = DMA_TRIGGERSOURCE_26;//ADC Param.transferUnitSelect = DMA_Size_SRCWORD_DSTWORD; Param.triggerTypeSelect = DMA_TRIGG_RISINGEDGE; dma_init(¶m); MemADC=ADC12_B_getMemoryAddressForDMA (ADC12_B_base, ADC12_B_memory_0); DMA_setSrcAddress(DMA_CHANGE_0,MemADC, DMA_Direction_unchange); dma_setDstAddress(dma_channel_0,&ADCval,dma_direction increment); dma_enableTransfers(DMA_channel_0);
用于计时器A1和CCR1
//Configuro timer A0 para que DISPARE MUESTREO timer_a_initContinuousModeParam initContParam ={0}; initContParam.clockSource = timer_a_CLOCKSOURCE_ACLK;//CLK=32.745Khz initContParam.clockSourceDivider = timer_a_CLOCKSOURCE_diver_1; initContParam.timerInterruptEnable_TAIE = timer_a_TAIE_interrupt_disable; initContParam.timerClear = timer_a_do清除; initContParam.startTimer = false; timer_a_initContinuousMode(timer A1_base,&initContParam); //初始比较模式 Timer_a_clearCaptureCompareInterrupt (timer_a1_base,timer_a_CAPTURECOMPare_register_1); timer_a_initCompareModeParam initCompParam ={0}; initCompParam.compareRegister = TIME_A_CAPTURECOMPARE_REGISTER_1; initCompParam.compareInterruptEnable = timer_a_CAPTURECOMPare_interrupt_enable; initCompParam.compareOutputMode = TIME_A_OUTPUTMODE_OUTBITVALUE; initCompParam.compareValue = 64; timer_a_initCompareMode(timer A1_base,&initCompParam); timer_a_startCounter( timer_a1_base, timer_a_continuous_mode);