请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR6922 工具/软件:Code Composer Studio
您好!
我正在尝试使用 ADC12BATMAP 位监控 MSP430FR6922上的 AVCC/2值。 因此、ADC 始终为我提供4095、2.0V 或2.5V 的内部基准电压。
这是我的 ADC12初始化函数:
void ADC12_init (void) { /*选择内部基准电压= 2.0V */ while (Ref_A_isRefGenBusy (ADC12_B_B_BASE)); Ref_A_setReferenceVoltage (ADC12_B_BASE、REF_A_VREF2_5V); ADC12_B_configureMemoryParam configureMemoryParam ={0}; configureMemoryParam.memoryBufferControlIndex = ADC12_B_MEMORY_0; configureMemoryParam.inputSourceSelect = ADC12_B_INPUT_BATMAP; configureMemoryParam.refVoltageSourceSelect = ADC12_B_VREFPS_INTBUF_VREFNEG_VSS; configureMemoryParam.endOfSequence = ADC12_B_ENDOSEQUENCE; configureMemoryParam.windowComparatorSelect = ADC12_B_Window_Comparator_disable; configureMemoryParam.differialModeSelect = ADC12_B_different_mode_disable; ADC12_B_initParam initParam ={0}; initParam.sampleHoldSignalSourceSelect = ADC12_B_SAMPLEHOLDSOURCE_SC; initParam.clockSourceSelect = ADC12_B_CLOCKSOURCE_ADC12OSC; initParam.clockSourceDivider = ADC12_B_CLOCKDIVIDER_1; initParam.clockSourcePredivider = ADC12_B_CLOCKPREDIVIDER__1; initParam.internalChannelMap = ADC12_B_B_B_BATTMAP; /*打开基准电压*/ Ref_A_enableReferenceVoltage (ADC12_B_B_BASE); /*启用内存缓冲区*/ ADC12_B_configureMemory (ADC12_B_base、&configureMemoryParam); /*启用 ADC12B 模块*/ ADC12_B_init (ADC12_B_B_base、&initParam); ADC12_B_ENABLE (ADC12_B_B_BASE); //启用存储器缓冲器0中断 ADC12_B_clearInterrupt (ADC12_B_BASE、0、ADC12_B_IFG0); ADC12_B_enableInterrupt (ADC12_B_base、ADC12_B_IE0、0、0); ADC12_B_setupSamplingTimer (ADC12_B_BASE、 ADC12_B_CYCLEHOLD_16_CYCLES、 ADC12_B_CYCLEHOLD_16_CYCLES、 ADC12_B_MULTIPLESAMPLESDISABLE); }
在这里,我们的电话是:
/*启动 ADC */ ADC12_init (); #if (1) _enable_interrupt (); while (1) { _delay_cycles (10000); ADC12_B_clearInterrupt (ADC12_B_BASE、0、ADC12_B_IFG0); ADC12_B_startConversion (ADC12_B_base、ADC12_B_MEMORY_0、ADC12_B_SINGLECHANNEL); _bis_SR_register (LPM0_bits + GIE); __no_operation(); } #endif
我使用中断内部的断点:
#pragma vector=ADC12_vector _interrupt void ADC12_ISR (void) { 易失 uint16 ADC = ADC12_B_getResults (ADC12_B_B_B_BASE、ADC12_B_MEMORY_0); __no_operation(); __BIC_SR_REGISTER_ON_EXIT (LPM0_Bits); }
提前感谢!