完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
哪位大神帮忙看下哪里出现的问题本来是采样0-3.3V输出,现在只有0-2V采样正常,2V-3.3V采样不正常,请问下问题出在哪里? main.c #include "config.h" #define keyin (P1IN & 0x0f) #define Num_of_Results 32 #define ANGLE 360 #define AVRVALUE 330 uint16_t results[Num_of_Results]; //保存ADC转换结果的数组 uint16_t average; uint8_t tcnt = 0; void delay(void); uint8_t Data[]="a:aaan"; //发送的字符串,字符串末尾通常都会有一个默认的 结束符 /******************************************* 函数名称:ADC12ISR 功 能:ADC中断服务函数,在这里用多次平均的 计算P6.0口的模拟电压数值 参 数:无 返回值 :无 ********************************************/ #pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) { static uint8_t index = 0; results[index++] = ADC12MEM0; // Move results if(index == Num_of_Results) { uint8_t i; average = 0; for(i = 0; i < Num_of_Results; i++) { average += results; } average >>= 5; //除以32 index = 0; tcnt++; if(tcnt == 250) //主要是降低串口发送速度 { LPM1_EXIT; tcnt = 0; } } } void main() { uint8_t i; uint8_t buffer[5]; uint8_t buffer1[4]; WDTCTL = WDTPW + WDTHOLD; P2DIR |= BIT0; P2OUT |= BIT0; //L8输出,熄灭 为1熄灭,为0点亮 InitUART(); //调用初始化函数 Init_ADC(); _EINT(); buffer[4] = ' |