i am using msp430f4270. when i am not turn on my adc function fluction in my current is not there but when i turn on my adc function there is significant current fluction so please give me solution to avoid fluction here is my code
#include <msp430x42x0.h>
#define h 0x80
#define g 0x40
#define f 0x20
#define e 0x10
#define d 0x08
#define c 0x04
#define b 0x02
#define a 0x01
unsigned char common[4];
int i=0,mode=0,display,number1,test,y1=0,offset=0;
int PW[4],digit=3,done=0,value[4],tp=0;
char list_mode,pass=0,zero1=0,cal1=0,cpass1=0;
unsigned char gain=1,dp=0,val_u1,y=0;
unsigned int val_new[4],val[4],x1=0,x2=0,ambient,crt;
double temp=0;
char blink=0;
unsigned int packed=0,packed11=0,inp=0;
unsigned int hex=0xFFFF,results;
unsigned int zero_val,span_val,outlow_val,outhi_val,dp_val=0,offset_val,gain_val;
unsigned int calz_tc,cals_tc=1,clol_val,cloh_val,calz_rtd=0,cals_rtd=0,calz_mv,amb_offset=0,cals_mv,cal_amb,temp_amb,z1,s1;
unsigned int pass_val,input_val,sample1;
long int input=0;
long int input2,input21;
long double val_a,val_b;
//long int avg[5];
long int sv,k2;
unsigned int i,sample=0;
if(input_val!=9)
{
kk: sample=0;
sv=0;
val_a=0; // Use volatile to prevent removal
sample1=0;
input=0;
y1=0;
switch(input_val)
{
case 2: SD16INCTL0 = SD16INCH_0;
break;
case 3: SD16INCTL0 = SD16INCH_1 + SD16GAIN_8; //J Type TC
SD16AE = SD16AE6 + SD16AE7;
break;
case 4: SD16INCTL0 = SD16INCH_1 + SD16GAIN_8; //K Type TC
SD16AE = SD16AE6 + SD16AE7;
break;
case 5: SD16INCTL0 = SD16INCH_1 + SD16GAIN_8; //R Type TC
SD16AE = SD16AE6 + SD16AE7;
break;
case 6: SD16INCTL0 = SD16INCH_1 + SD16GAIN_8; //S Type TC
SD16AE = SD16AE6 + SD16AE7;
break;
case 7: SD16INCTL0 = SD16INCH_1 + SD16GAIN_8; //T Type TC
SD16AE = SD16AE6 + SD16AE7;
break;
case 8: //mV Type
switch(gain_val)
{
case 1 : SD16INCTL0 = SD16INCH_1 + SD16GAIN_1; // 512 mv
break;
case 2 : SD16INCTL0 = SD16INCH_1 + SD16GAIN_2; // 256 mv
break;
case 4 : SD16INCTL0 = SD16INCH_1 + SD16GAIN_4; // 128mv
break;
case 8 : SD16INCTL0 = SD16INCH_1 + SD16GAIN_8; // 64mv
break;
case 16 : SD16INCTL0 = SD16INCH_1 + SD16GAIN_16; //32 mv
break;
case 32 : SD16INCTL0 = SD16INCH_1 + SD16GAIN_32; //16 mv
break;
}
break;
}
FLL_CTL0 |= XCAP14PF; // Configure load caps
for (i = 0; i < 5000; i++); // Delay for 32 kHz crystal to
// stabilize
SD16CTL = SD16REFON + SD16SSEL0 ; // 1.2V ref, SMCLK
SD16CCTL0 |= SD16SNGL + SD16UNI; // Single conv
for (i = 0; i < 0x3000; i++); // Delay for 1.2V ref startup
adc1: SD16CCTL0 |= SD16SC; // Set bit to start conversion
while ((SD16CCTL0 & SD16IFG)==0); // Poll interrupt flag
results = SD16MEM0; // Save CH0 results (clears IFG)
if(sample<32)
{
val_a=(val_a+results);
sample++;
goto adc1;
}
input=val_a/32;
if(input_val==2)
{
int tp=0;
val_a=cals_rtd-calz_rtd;
val_b=input-calz_rtd;
val_b=7583*val_b;
val_a=val_b/val_a;
input=(10000+val_a);
asm (" Mov #0E5C0h,R5 ");
asm (" MOV @R5,sample1 ");
while ( sample1<input && tp!=33)
{
asm (" INCD R5 ");
tp++;
x1=sample1;
asm (" MOV @R5,sample1 ");
}
if(tp<=3)
{
y1=-(100-((tp+1)*25));
}
else
{
y1=25*(tp-5);
}
x2=sample1;
val_a=x2-x1;
val_b=input-x1;
val_b=25*val_b;
val_a=val_b/val_a;
input=(10*(y1+val_a));
input2=input;
input21=input;
input=input+offset_val;
}
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
input=0x1234;
intial_tc_fw();
P2DIR = 0XFF; //port initialization
P5DIR = 0X1E;
P2SEL = 0X00;
P5SEL = 0X00;
P6SEL = 0X0F;
P1SEL = 0xFF;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 1700;
TACTL = TASSEL_2 + MC_2;
// SMCLK, continuous mode
_BIS_SR(GIE); // Enter LPM0 w/ interrupt
input=0;
mode=1;
list_mode=1;
pass=10;
inp=2;
//if(input_val>10)
//{
//inp=1;
//}
//else
//{
//inp=input_val;
//}
delay(30000);
//list_mode=0;
pass=0;
mode=0;
outhi_val=1;
input_val=2;
calz_rtd=128;
cals_rtd=20175;
cloh_val=255;
outhi_val=200;
while(1)
{
if(mode==0)
{
adc();
if(input_val==9)
{
if((input21/10)<outlow_val)
{
for(i=0;i<4;i++)
{
common[i]=fl[i];
}
}
else if((input21/10)>outhi_val)
{
for(i=4;i<8;i++)
{
common[i-4]=fl[i];
}
}
else
{
for(i=8;i<12;i++)
{
common[i-8]=fl[i];
}
}
}
dac();
}
if(val_u1==1)
{
dac();
}
if((sample1!=0xFFFE || mode==1 ||mode==0)&& input_val!=9 )
{
getcode();
}
}
}