int main( void )
{ WDTCTL = WDTPW+WDTHOLD;
DCOCTL|=CALDCO_16MHZ;
BCSCTL1|=CALBC1_16MHZ;
Lcd_Init(); //初始化OLED
LCD_Clear(WHITE); //清屏
TA1CTL=TASSEL_2 + ID_0 + MC_1+ TAIE + TACLR; //TA01增计数至16000
TA1CCR0=16000-1;
TA1CCTL0 |= CCIE;
P1DIR&=~BIT1;
P1SEL|=BIT1;
TA0CTL=TASSEL_2 + MC_2 + TAIE + TACLR; //TA0连续计数
TA0CCTL1|=CAP+CM_1+CCIS_0+SCS+CCIE;
BCSCTL2=SELS;
ADC10CTL0 &= ~ENC;
ADC10CTL1 |= INCH_1 + ADC10SSEL_3+CONSEQ_0; // 选择通道A0 时钟源选择SMCLK
ADC10CTL0 |= ADC10SHT_2+ ADC10ON + ADC10IE; // ADC10ON, interrupt 选择内部参考源3.6V 4个ADC周期;
ADC10AE0 |= BIT1;//通道A0使能
_EINT();
while(1){
ADC10CTL0 |= ENC + ADC10SC;
for(int m=0;m
{
if(a[199]
a[199] = a[m];
if(a[0]>a[m])
a[0]=a[m];
}
max = a[199];
min = a[0];
ADC = 2*(max - min)*3.6/1024;
ADCss=ADC*100;
ADCs=ADCss%100;
}
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer_A1(void)
{ xianshi();
LCD_Clear(WHITE);
f=f;
fss=f*100;
fs=fss%100;
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0(void)
{
switch(TA0IV)
{ case 2:f= TA_cnt*65536+TA0CCR1-PerVal;
PerVal=TA0CCR1;
TA_cnt=0;
break;
case 4:break;
case 10:TA_cnt= TA_cnt+1;
break;
}
}