TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] CCS/MSP430FR5857:FRAM到RAM

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/616020/ccs-msp430fr5857-fram-to-ram

部件号:MSP430FR5857

工具/软件:Code Composer Studio

嗨。

我正在运行一个代码,并获得以下优化建议。

有人能告诉我问题是什么以及如何消除它吗?

#include <MSP40.0>
static unsigned int var =0;
static unsigned int var1 =0;

void adcinit ()
{
ADC12CTL0 = ADC12SHT0_2 | ADC12ON | ADC12MSC; /*采样时间,S&H=16,ADC12开*/
ADC12CTL1 = ADC12SHP | ADC12CONSEQ0 | ADC12CONSEQ1; /*使用采样计时器*/
ADC12CTL2 || ADC12RES_2; /* 12位转换结果*/
ADC12MCTL0 |= ADC12INCH_0; /* A0 ADC输入选择;Vref=AVCC */
ADC12MCTL1 |= ADC12INCH_1; /* A1 ADC输入选择;Vref=AVCC */
ADC12MCTL2 || ADC12INCH_2; /* A2 ADC输入选择;Vref=AVCC */
ADC12MCTL3 |= ADC12INCH_3; /* A3 ADC输入选择;Vref=AVCC */
ADC12MCTL4 |= ADC12INCH_4; /* A4 ADC输入选择;Vref=AVCC */
ADC12MCTL5 = ADC12INCH_6| ADC12EOS; /* A6 ADC输入选择;Vref=AVCC,序列结束*/
ADC12IER0 = ADC12IE0 | ADC12IE1 | ADC12IE2 | ADC12IE3 | ADC12IE4 | ADC12IE6;/*启用ADC连接完全中断*/
}

void clockinit()
{
/*在配置时钟系统之前超过8MHz的操作。*/
FRCTL0 = FRCTLPW | NWITS_1;

//时钟系统设置
CSCTL0_H = CSOKEY >> 8; /*解锁CS寄存器*/
CSCTL1 = DCORSEL | DCOFsel_4; /*将DCO设置为16MHz*/
CSCTL2 =拉美_ VLOCLK | SESS__DCOCLK | SELM__DCOCLK;// SET SMCLK = MCLK = DCO,
/* ACLK = VLOCLK*/
CSCTL3 = DIVA__1 | DIVs__1 | DIVM__1; /*设置所有分隔线*/
CSCTL0_H = 0;
}


int main(void)
{
WDTCTL = WDTPW | WDTHOLD; //停止WDT

__bis_sr_register(GIE);

//禁用GPIO通电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLP5;
clockinit();
adcinit();
}
void __attribute__((interrupt (ADC12_vector)) ADC12_IFF_ADC12IZR_



案例ADC12IV_NONE: 中断; //矢量0:无中断
CASE ADC12IV_ADC12OVIFG:中断; //矢量2:ADC12MEMx溢出
CASE ADC12IV_ADC12TOVIFG:中断; //矢量4:转换时间溢出
CASE ADC12IV_ADC12HIIFG:中断; //向量6:ADC12BHI
CASE ADC12IV_ADC12LOIFG:中断; //矢量8:ADC12BLO
CASE ADC12IV_ADC12INIFG:中断; //矢量10:ADC12BIN
Case ADC12IV_ADC12IFG0: //矢量14:ADC12MEM0
VAR = ADC12MEM0;
VAR1 =(var*VAR)/4096 3.3 ;
IF (var1 >= 1.82 || var1 <= 1.64)
{
P2OUT |=BIIT2;
P3OUT |=BIT7;
}
中断;
CASE ADC12IV_ADC12IFG1: //矢量14:ADC12MEM1
VAR = ADC12MEM1;
VAR1 =(var*VAR)/4096 3.3 ;
IF (var1 >= 0.265)
{
P2OUT |=BIIT2;
P3OUT |=BIT7;
}
中断;
CASE ADC12IV_ADC12IFG2: //矢量18:ADC12MEM2
VAR = ADC12MEM2;
VAR1 =(var*VAR)/4096 3.3 ;
IF (var1 >= 0.461) //用于4A。 用于6.
{
P2OUT |=BIIT2;
P3OUT |=BIT7;
}
中断;
Case ADC12IV_ADC12IFG3: //向量20:ADC12MEM3
VAR = ADC12MEM3;
VAR1 =(var*VAR)/4096 3.3 ;
IF (var1 >= 3.121 & P2OUT == BIIT2)
{
P2OUT |=BIIT2;
P3OUT |=BIT7;
}
中断;
CASE ADC12IV_ADC12IFG4: //向量20:ADC12MEM4
VAR = ADC12MEM4;
VAR1 =(var*VAR)/4096 3.3 ;
IF (var1 >= 3.118 & P3OUT == BIT7)
{
P2OUT |=BIIT2;
P3OUT |=BIT7;
}
中断;
CASE ADC12IV_ADC12IFG5: //矢量24:ADC12MEM5
/*var = ADC12MEM5;
VAR1 =(var*VAR)/4096 3.3 ;
IF (var1 >= 4000 || var1 <=300)
{
P2OUT |=BIIT2;
P3OUT |=BIT7;
}*/
中断;
CASE ADC12IV_ADC12IFG6:Break; //矢量24:ADC12MEM6
CASE ADC12IV_ADC12IFG7:Break; //矢量26:ADC12MEM7
CASE ADC12IV_ADC12IFG8:Break; //矢量28:ADC12MEM8
CASE ADC12IV_ADC12IFG9:Break; //向量30:ADC12MEM9
CASE ADC12IV_ADC12IFG10:中断; //矢量32:ADC12MEM10
CASE ADC12IV_ADC12IFG11:Break; //矢量34:ADC12MEM11
CASE ADC12IV_ADC12IFG12:中断; //矢量36:ADC12MEM12
CASE ADC12IV_ADC12IFG13:中断; //矢量38:ADC12MEM13
CASE ADC12IV_ADC12IFG14:Break; //向量40:ADC12MEM14
CASE ADC12IV_ADC12IFG15:中断; //矢量42:ADC12MEM15
CASE ADC12IV_ADC12IFG16:Break; //矢量44:ADC12MEM16
CASE ADC12IV_ADC12IFG17:Break; //矢量46:ADC12MEM17
CASE ADC12IV_ADC12IFG18:中断; //矢量48:ADC12MEM18
CASE ADC12IV_ADC12IFG19:中断; //矢量50:ADC12MEM19
CASE ADC12IV_ADC12IFG20:Break; //矢量52:ADC12MEM20
CASE ADC12IV_ADC12IFG21:Break; //矢量54:ADC12MEM21
CASE ADC12IV_ADC12IFG22:中断; //矢量56:ADC12MEM22
CASE ADC12IV_ADC12IFG23:Break; //矢量58:ADC12MEM23
CASE ADC12IV_ADC12IFG24:中断; //向量60:ADC12MEM24
CASE ADC12IV_ADC12IFG25:中断; //矢量62:ADC12MEM25
CASE ADC12IV_ADC12IFG26:Break; //矢量64:ADC12MEM26
CASE ADC12IV_ADC12IFG27:Break; //矢量66:ADC12MEM27
CASE ADC12IV_ADC12IFG28:Break; //矢量68:ADC12MEM28
CASE ADC12IV_ADC12IFG29:Break; //向量70:ADC12MEM29
CASE ADC12IV_ADC12IFG30:中断; //矢量72:ADC12MEM30
CASE ADC12IV_ADC12IFG31:中断; //矢量74:ADC12MEM31
CASE ADC12IV_ADC12RDYIFG:中断; //矢量76:ADC12RDY
默认值:break;
}
}

上面给出的是完整代码。

提前感谢您的参与。

维斯瓦纳思。