程序从MSP430FR4133移植到MSP430FR6972如何做到低功耗一样?

2019-03-23 22:16发布

程序内容:RTC LCD显示、ADC电池采样;MSP430FR4133可以做到7UAMSP430FR6972却有40UA;多余的电流经查ADC10UA),AD 关闭,内部参考电压无法关闭而MSP430FR4133可以关闭,为什么?void ADC12_Config()  // MSP430FR6972{         PMMCTL0= SVSHE + PMMPW;                  while(REFCTL0& REFGENBUSY);              // If refgenerator busy, WAIT REFCTL0 |= REFVSEL_1 + REFON;            // Enable internal 2.0V reference //参考电压配置 ADC12CTL0 &= ~ADC12ENC;                   // Disable ADC12 (ADC12ENC=0的情况下,修改启动或关闭AD) ADC12CTL0 = ADC12SHT0_8 + ADC12ON;       // Set sample time  采样保持时间 256ADCCLK;启动AD ADC12CTL1 = ADC12SHP;                    // Enable sample timer ADCCLK = MODOSC; sampling timer   从采样保持器中获取信号 ADC12CTL2 |= ADC12RES_2;                 // 12-bit conversion results分辨率 ADC12CTL3 = ADC12BATMAP;                // Enable internal 1/2 AVCC+ ADC12MCTL0 = ADC12VRSEL_1 + ADC12INCH_31; // ADC input ch A30 =>internal 1/2 AVCC+ ADC12IER0 |= ADC12IE0;                       // ADC_IFG upon convresult-ADCMEMO while(!(REFCTL0 & REFGENRDY));            // Wait for reference generator                                            //to settle ADC12CTL0 |= ADC12ENC; __delay_cycles(400);}ADC中断   case ADC12IV_ADC12IFG0:                // Vector 12:  ADC12MEM0 Interrupt     ui16Bat_Vol = (uint32_t)100*ADC12MEM0/0x3FF;      if(ui16Bat_Vol_Old!=ui16Bat_Vol)                     {                                   bADC_done_flag= true;                                ui16Bat_Vol_Old= ui16Bat_Vol;             }     //Exit from LPM0 and continue executing main            while(REFCTL0 & REFGENBUSY);              // If ref generator busy, WAIT     REFCTL0 = 0;      while(!(REFCTL0 & REFGENRDY));            // Wait for reference generator             ADC12CTL0 &= ~ADC12ENC;                     ADC12CTL0 &= ~ADC12ON;      //AD 关闭     break;
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
tiankai001
2019-03-24 08:15
ADC里面,你把REF寄存器关闭应该可以

一周热门 更多>

相关问题

    相关文章