msp430f149 编译时出现的问题!!!急急急 求大神指导

2019-07-15 16:17发布

/*********************************************************
程序功能:将ADC对P6.0端口电压的转换结果按转换数据和对应的
          模拟电压的形式通过串口发送到PC机屏幕上显示
-----------------------------------------------------------
通信格式:N.8.1, 9600
-----------------------------------------------------------
测试说明:打开串口调试精灵,正确设置通信格式,观察接收数据
**********************************************************/
#include <msp430.h>
#include "allfunc.h"
#include "UART0_Func.c"
#include "ADC_Func.c"
#define   Num_of_Results   32
uint results[Num_of_Results];    //保存ADC转换结果的数组
uint average;
uchar tcnt = 0;
/***********************主函数***********************/
void main( void )
{
    uchar i;
    uchar buffer[5];
   
    WDTCTL = WDTPW + WDTHOLD;           //关狗
   
    /*下面六行程序关闭所有的IO口*/
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;
   
    P6DIR |= BIT2;P6OUT |= BIT2;        //关闭电平转换
    P6DIR|=BIT6;P6OUT&=~BIT6;                 //关闭数码管显示
   
    InitUART();
    Init_ADC();
    _EINT();
   
    buffer[4] = '';
    while(1)
    {
        LPM1;
        Hex2Dec(average,buffer);
        for(i = 0; i < 4; i++)
            buffer += 0x30;
        PutString0("The digital value is: ");
        PutString(buffer);
        
        
        Trans_val(average,buffer);
        buffer[3] = buffer[2];
        buffer[2] = buffer[1];
        buffer[1] = 0x2e - 0x30;
        for(i = 0; i < 4; i++)
            buffer += 0x30;
        PutString0("The analog value is: ");
        PutString(buffer);     
    }
   
}
/*******************************************
函数名称:ADC12ISR
功    能:ADC中断服务函数,在这里用多次平均的
          计算P6.0口的模拟电压数值
参    数:无      
返回值  :无
********************************************/
#pragma vector=ADC_VECTOR      这一行显示Description Resource Path Location Type
#20 identifier "ADC_VECTOR" is undefined main.c /qwert line 72 C/C++ Problem

__interrupt void ADC12ISR (void)
{
    static uchar index = 0;
  
    results[index++] = ADC12MEM0;               // Move results
    if(index == Num_of_Results)
    {
        uchar 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;
        }
    }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。