This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR6989:第9个模拟输入信号

Guru**** 2595805 points
Other Parts Discussed in Thread: MSP430FR6989

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/642848/msp430fr6989-the-9th-analog-input-signal

部件号:MSP430FR6989

您好,

我正在使用MSP430FR6989读取8个模拟信号,我需要读取第9个信号,我使用以下引脚来读取:8.7 ,8.6 ,8.5 ,8.4 ,9.1 ,9.2 ,9.3 ,9.5 ,9.0 和引脚1.5 中的输出。

我是否可以使用额外的针来读取第9个信号?

谢谢!

萨利

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sali,

     MSP430FR698x(1),MSP430FR598x(1)混合信号微控制器数据表 提供了有关哪些引脚可以用作模拟(ADC)输入的信息。 您在帖子中列出的所有引脚(除WFP 1.5 外)都可以用作模拟输入。  

    此致,  
    Caleb Overbay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢Caleb的回复。
    我的意思是可以同时读取10个模拟输入吗? 因为我没有找到可以使用的第10个针脚。 对于输出,1.5 是固定的。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Sali,

    MSP430FR6989中提供的ADC12模块可处理多达16个外部输入通道。 之前链接的数据表I的表4-1和4-2显示了引脚说明以及可用于模拟输入的引脚。

    此致,
    Caleb Overbay
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢,我明白了。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    下面的代码可以完美地读取9个模拟直流信号,然后将其乘以某个系数,之后我对所有这些信号求和(乘后),然后将其转换为PWM。

    现在,当我想添加第10个信号时,我开始看到这个错误

    ****为项目Oleg1构建配置调试****

    "C:\\ti\\ccsv7\\utils\\bin\\gmake "-k -j 4 all -o
    '构建文件:../main2AddextraInput.c'
    '调用:MSP430编译器'
    c:\ti/ccsv7/tools/compiler/ti-CGT-MSP430_Silicon.0.sts/bin/cl430" 17.3 -vmspx --data_model=restricted --use_hw_errap=F5 --include_path="C:\ti/ccsl/ccsvsts/ccsvsts 7/ccsvcsilex=base/MSP430/sall_concludi=-workspace_per_conv=-concludi_workstatel=-workse_jet_ps=-workstatus_ps=-worksilit_ps=-worksilit_gf_jet_-workstatus_-ji_-ps=-worksia_gf_jet_-workstaticle_gf_jet_ps=-ji=-jet_gbyclus_gf_ps=-workstaticle_-jet_jet_-jet_-jet_-worksia_-jet_git_-jiextrap-jp_-ji_gbidex-ji_ 17.3
    "../main2AddextraInput.c",第55行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第56行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第57行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第58行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第59行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第60行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第61行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第62行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第63行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第64行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第73行:备注#1530-D:(ULP 5.1 Detected Divide operation(s)。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第55行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第56行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第57行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第58行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第59行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第60行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第61行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第62行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第63行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第64行(列 32):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第67行(列 19):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第69行(列 105):备注#1531-D:(ULP 5.2 检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第68行(列 106):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    "../main2AddextraInput.c",第73行(列 49):备注#1531-D:(ULP 5.2)检测到浮点操作。 建议在运行期间或不使用时将其移至RAM,因为这些都是处理/耗电密集型任务
    '完工建筑:../main2AddextraInput.c'
    ''
    '构建目标:Oleg1.out '
    '调用:MSP430连接器'
    c:\ti/ccsv7/tools/compiler/ti-CGT-MSP430_CCSN.0.sts/bin/cl430" 17.3 -vmspx --data_model=restricted --use_HW_勘 误表=F5 --advice:POWER=all --advice:hw_config=all --definit=MSP430_fricon_6.6989万_-g ---gi_cns_cnic_5cret=-/creti=7/cvi_spit_gi=-ccup/cci_cci_cwi_gi=-cci_gi_gi=7/cvi_ccpuli_ccwi_cwi_gi_cwx_cwi=7_gi_cref_gi_cwi_cwx_cwx_cwx_cwx_cwx_cwi=-gi_cwx_cwi=-cwi_cwi_cwi_cwi_cwx_cwx_cwx_cwx 17.3 17.3
    链接>
    错误#1.0056万:重新定义符号"flag_start":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"__TI_int44":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"__TI_int45":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"__TI_int43":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_gPIo":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_tim_a":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_ADD":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"main":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"ADC_value":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_dco":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号“CCR1”:首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号“CCR0”:首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"ADC_ISR":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"ADC_value_volt":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    备注#1.0371万-D:(ULP 1.1)检测到未使用低功耗模式状态更改指令
    错误#1.001万:链接时出错;未生成“Oleg1.out”
    说明#1.0372万-D:(ULP 4.1)在此项目中检测到未初始化的端口A。 建议初始化所有未使用的端口,以消除未使用的引脚上浪费的电流消耗。
    说明#1.0372万-D:(ULP 4.1)在此项目中检测到未初始化的端口B。 建议初始化所有未使用的端口,以消除未使用的引脚上浪费的电流消耗。
    备注#1.0372万-D:(ULP 4.1)在此项目中检测到未初始化的端口C。 建议初始化所有未使用的端口,以消除未使用的引脚上浪费的电流消耗。
    备注#1.0372万-D:(ULP 4.1)在此项目中检测到未初始化的端口D。 建议初始化所有未使用的端口,以消除未使用的引脚上浪费的电流消耗。
    备注#1.0372万-D:(ULP 4.1)在此项目中检测到未初始化的端口E。 建议初始化所有未使用的端口,以消除未使用的引脚上浪费的电流消耗。

    >>编译失败
    Makefile:143:目标'Oleg1.OUT.'的配方失败
    gmake [1]:***[Oleg1.OUT]错误1
    gmake:***[All]错误2
    Makefile:139:目标'All'的配方失败

    ****构建已完成****


    #include <msp430fr6989.h>

    #define period_PWM 4000

    #define FACTOR0 0.05
    #define FACTOR1 0.05
    #define FACTOR2 0.05
    #define FACTOR3 0.05
    #define FACTOR4 0.05
    #define FACTOR5 0.05
    #define FACTOR6 0.05
    #define FACTOR7 0.05
    #define FACTOR8 0.05
    #define FACTOR9 0.05

    unsigned int ADC_value[10]={0,0,0,0,0,0,0,0,0};
    FLOAT ADC_value_volt[10]={0,0,0,0,0,0,0,0};
    浮点U_out;

    _Bool flag_start = 0;

    void init_tim_A(void);
    void init_adc (void);
    void init_gpio (void);
    void init_dco(void);

    Void主(void)


    WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
    PM5CTL0 &=~LCKLPM5;/*对于FRAM设备,启动时,GPIO通电默认高阻抗模式
    需要禁用才能激活先前配置的端口设置。
    这可以通过清除PM5CTL0寄存器中的锁定LPM5位来完成。*/

    //初始化功能:
    INIT_DCO();//初始化时钟系统

    init_gPIO();//初始化gPIO

    init_tim_a();//初始化计时器_a.

    INIT_ADC();//初始化ADC
    //~初始化函数

    _enable_interrupt ();//启用全局中断
    ADC12CTL0 || ADC12SC;//启动ADC

    同时(1)

    IF (flag_start == 1)

    Flag_start = 0;

    ADC_VALUE_VOLT[0]= ADC_VALUE[0]*ADC/4095;//以[VOLT]为单位的3.3 转换值
    ADC_value_volt[1]= ADC_value[1]*ADC/4095 3.3 ;
    ADC_value_volt[2]= ADC_value[2]*ADC/4095; 3.3
    ADC_value_volt[3]= ADC_value[3]*ADC/4095; 3.3
    ADC_value_volt[4]= ADC_value[4]*ADC/4095; 3.3
    ADC_value_volt[5]= ADC_value[5]* 3.3 /4095;
    ADC_value_volt[6]= ADC_value[6]*ADC/4095; 3.3
    ADC_value_volt[7]= ADC_value[7]*ADC/4095 3.3 ;
    ADC_value_volt[8]= ADC_value[8]* 3.3 /4095;
    ADC_value_volt[9]= ADC_value[9]* 3.3 /4095;

    //以[volt]为单位的ADC值的总和,其中每个值乘以一个因子:
    u_out = ADC_value_volt[0]*FACTOR0 + ADC_value_volt[1]*FACTOR1 + ADC_value_volt[2]*FACTOR2 +
    ADC_value_volt[3]*FACTOR3 + ADC_value_volt[4]*FACTOR4 + ADC_value_volt[5]*FACTOR5 +
    ADC_value_volt[6]*FACTOR6 + ADC_value_volt[7]*FACTOR7 + ADC_value_volt[8]*FACTOR8+ADC_value_volt[9]*FACTOR9;


    TA0CTL &=~MC_0;//停止计时器
    TA0CCR0 =(U_OUT * Period_PWM/TAM 3.3)-1;//更改占空比
    TA0CTL |= MC_2;//启动计时器


    ADC12CTL0 || ADC12SC;//启动ADC
    }
    }
    }

    void init_adc (void)

    P8SEL0 |= BIT7|BIT6|BIT5|BIT4;// WFP 8.7 8.4 ,WFP 8.6 ,WFP 8.5 ,WFP ADC选项选择
    P8SEL1 || BIT7|BIT6|BIT5|BIT4;

    P1SEL0 |=BIT3;//添加WFP 1.3
    P1SEL1 |=BIT3;

    P9SEL0 |= BIT0|BIT1|BIT2|BIT3|BIT5;// 9.0 ,WFP 9.1 9.5 ,9.2 ,WFP,9.3 ,WFP ADC选项选择
    P9SEL1 || BIT0|BIT1|BIT2|BIT3|BIT5;


    ADC12CTL0 &=~ADC12ENC;//禁用转换以设置ADC控制寄存器
    ADC12CTL1 || ADC12CONSEQ_1;//转换模式选择:单序列

    ADC12CTL0 |= ADC12SHT0_5|ADC12SHT1_5|ADC12ON|ADC12MSC;//设置采样时间:96 ADC12CLK的时间
    //打开ADC12
    //使用Multiple Sample和Convert

    ADC12CTL1 || ADC12PDIV__1|ADC12SHP|ADC12DIV_5|ADC12SSEL_0;// ADC12时钟分频器选择:1.
    // SHI信号用于触发采样计时器
    // ADC12CTL0中的SHT0和SHT1位控制的间隔
    //定义SAMPCON采样周期的采样计时器。
    // ADC12时钟分频器选择:5.
    // ADC12SSELx位选择源:内部振荡器ADC12OSC。

    ADC12CTL2 || ADC12RES_2;// ADC分辨率:12位
    ADC12IER0 |= BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7|BIT8|BIT9;;//为ADC信道启用中断

    //为ADC通道选择数据寄存器:
    ADC12MCTL0 = ADC12INCH_4;//来自CH4的数据-> ADC12MEM0
    ADC12MCTL1 = ADC12INCH_5;//来自CH5的数据-> ADC12MEM1
    ADC12MCTL2 = ADC12INCH_6;
    ADC12MCTL3 = ADC12INCH_7;
    ADC12MCTL4 = ADC12INCH_8;//...
    ADC12MCTL5 = ADC12INCH_9;
    ADC12MCTL6 = ADC12INCH_10;
    ADC12MCTL7 = ADC12INCH_11;//来自CH11的数据-> ADC12MEM7
    ADC12MCTL8 = ADC12INCH_12;
    ADC12MCTL9 = ADC12INCH_13|ADC12EOS;//来自CH13的数据-> ADC12MEM8;ADC12EOS -序列结束。

    ADC12CTL0 |= ADC12ENC;//启用转换

    }

    void init_dco (void)

    FRCTL0 = FRCTLPW | NWAITS_2;//写入FRAM控制器控制:
    // FRCTLPW -用于写入的FRAM密码
    // NWAITS_2 - FRAM等待状态控制:2.
    //当MCKL频率大于16 MHz时,需要此功能

    CSCTL0_H = CSOKEY >> 8;//解锁时钟系统的控制寄存器
    CSCTL1 = DCOFSEL_5|DCORSEL;// DCO = 24 MHz,选择时钟源:DCO
    CSCTL3 = DIVA_0 | DIVM_0 | DIVM_0;//用于ACLK,SMCLK,MCLK的分隔符
    CSCTL0_H = 0;//锁定时钟系统的控制寄存器
    }

    void init_tim_a (void)

    TA0CCR0 = Period_PWM/2 - 1;//在寄存器中写入,比较0以设置占空比
    TA0CCR1 = Period_PWM -1;//写入寄存器比较1设置周期
    TA0CCTL0 = CCIE;//比较中断0启用
    TA0CCTL1 = CCIE;//比较中断1启用

    TA0CTL = tassel_2 | ID_0 | MC_2;// tassel_2 -选择时钟源:SMCLK;
    // ID_0 -除法器= 1;
    // MC_2 -计数模式选择:连续模式
    }


    void init_gpio (void)

    P1DIR || BIT5;//适用于WFP 1.5 的输出模式
    P1OUT |= BIT5;// WFP 1.5 = 1.
    }

    //---------------- PWM ---------------------------
    #pragma vector = TIMER0_A0_vector
    __interrupt void CCR0 (void)

    P1OUT &=~BIT5;// WFP 1.5 = 0
    }

    #pragma vector = TIMER0_A1_vector
    __interrupt void CCR1 (void)

    IF (TA0CCTL1&CCIFG == CCIFG)

    TA0CCTL1 &=~CCIFG;//清除标志中断

    P1OUT |= BIT5;// WFP 1.5 = 1.

    TA0R = 0;//清除计数寄存器
    }
    }
    //---------------- ~PWM ---------------------------
    #pragma vector = ADC12_vector
    __interrupt void ADC_ISR(void)// ADC中断:从变量ADC_VALUE中写入ADC值[]

    开关(ADC12IV)

    案例0:中断;
    案例2:中断;
    案例4:中断;
    案例6:中断;
    案例8:中断;
    案例10:中断;
    案例12://矢量12:ADC12IFG0

    ADC_VALUE [0]= ADC12MEM0;
    }中断;

    案例14://矢量14:ADC12IFG1

    ADC_VALUE [1]= ADC12MEM1;
    }中断;

    案例16://矢量16:ADC12IFG2

    ADC_VALUE [2]= ADC12MEM2;
    }中断;
    案例18://矢量18:ADC12IFG3

    ADC_VALUE [3]= ADC12MEM3;
    }中断;
    案例20:// Vector 20:ADC12IFG4

    ADC_VALUE [4]= ADC12MEM4;
    }中断;
    案例22://矢量22:ADC12IFG5

    ADC_VALUE [5]= ADC12MEM5;
    }中断;
    案例24://矢量24:ADC12IFG6

    ADC_VALUE [6]= ADC12MEM6;
    }中断;
    判例26://矢量26:ADC12IFG7

    ADC_VALUE [7]= ADC12MEM7;
    }中断;
    判例28://矢量28:ADC12IFG8

    ADC_VALUE [8]= ADC12MEM8;
    //设置标志启动以开始重复转换
    }中断;

    判例30:// Vector 28:ADC12IFG8

    ADC_VALUE [9]= ADC12MEM9;
    flag_start = 1;//设置用于开始重复转换的标志start
    }中断;

    默认值:中断;
    }
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Sali,

    这里要注意的重要事项是:

    错误#1.0056万:重新定义符号"flag_start":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"__TI_int44":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"__TI_int45":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"__TI_int43":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_gPIo":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_tim_a":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_ADD":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"main":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"ADC_value":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"init_dco":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号“CCR1”:首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号“CCR0”:首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"ADC_ISR":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义
    错误#1.0056万:重新定义符号"ADC_value_volt":首先在"./main.obj"中定义;在"./main2AddextraInput.obj"中重新定义

    看起来有些符号在项目中的多个位置被重新定义。 这不是我可以根据您发布的代码进行调试的内容。 您需要确保没有两个文件使用相同的符号,并应确保头文件受到#ifdef的保护。

    此致,
    Caleb Overbay