怎么完全关闭247的adc12,降低功耗?

2019-07-23 14:45发布

小弟现在在使用m430f247,客户要求低功耗,但是我发现打开adc后,电流增加500多ua,下面是函数,一旦调用adc_init()函数后,电流就会变大,我想通过adc_lp()使ADC12CTL0和ADC12CTL1置0,但是没效果如图,那几个寄存器位依旧是1.求大神帮帮忙,谢谢了。
  1. void adc_init()
  2. {
  3.   volatile unsigned int i;
  4.   P6SEL |= BIT4;                           
  5.   ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; // Turn on and set up ADC12
  6.   ADC12CTL1 = SHP;                        
  7.   ADC12MCTL0 = SREF_1+INCH_4;                  

  8.   for ( i=0; i<0x3600; i++);               
  9.   ADC12CTL0 |= ENC;
  10. }
复制代码
  1. void adc_lp()
  2. {
  3. P6SEL |= BIT4;
  4. ADC12CTL1 &=~ SHP;
  5. ADC12CTL0&=~(ADC12ON+SHT0_2+REFON+REF2_5V);//adc off
  6. ADC12CTL0 &=~ ENC;                        
  7. }
复制代码
QQ截图20160316180107.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
dirtwillfly
1楼-- · 2019-07-23 18:09
要关闭adc模块使能和基准电压使能等
smilingangel
2楼-- · 2019-07-24 00:08
这个还跟相关的IO口的状态有关系的。
smilingangel
3楼-- · 2019-07-24 04:28
这个需要关闭ADC模块的同事,也关掉信号输入对应的IO口的,是其处于低功耗状态的设置。
comeon201208
4楼-- · 2019-07-24 10:09
楼上说的是,不管要考虑AD模块自身的,还需要考虑线管的IO管脚的。
vibra2016
5楼-- · 2019-07-24 15:56
 精彩回答 2  元偷偷看……
vibra2016
6楼-- · 2019-07-24 21:20
参考楼上各位的意见的,我在这方面的也多注意下。

一周热门 更多>