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/MSP430F5529:MSP430F5529

Guru**** 2589280 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/864035/ccs-msp430f5529-msp430f5529

器件型号:MSP430F5529

工具/软件:Code Composer Studio

#include


空延迟(无符号长整型 I)

表示(i;i > 0;i-);

int main (空)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

//配置 LED
P1DIR |= BIT0;

//配置 PIN
P7SEL |= 0x01;//将 P7.0设置为 ADC


ADC12CTL0 = ADC12SHT02 + ADC12ON;// 64个 ADC12CLK 周期,ADC12_A 打开。
ADC12CTL1 = ADC12SHP;
ADC12IE = 0x01;
ADC12CTL0 |= ADC12ENC;//启用转换

TA0CCR0 = 1000-1;//设置 PWM 周期
TA0CCTL1 = OUTMOD_7;// CCR1复位/置位
TA0CCR1 = 0;// CCR1 PWM 占空比
TA0CTL = tassel_2 + MC_1 + TACLR;// SMCLK、向上计数模式

while (1)

ADC12CTL0 |= ADC12SC;//开始转换
_bis_SR_register (LPM0_bits + GIE);
__no_operation();//在此设置断点


#pragma vector = ADC12_vector
_interrupt void ADC12_ISR (void)

if (ADC12MEM0 < 2048)

P1OUT &=~BIT0;
延迟(1000);

否则、如果(2048 <= ADC12MEM0 < 3072)

IF (TA0CCR1 < 100)

P1OUT |= BIT0;
延迟(1000);

其他

P1OUT &=~BIT0;


否则、如果(3072 <= ADC12MEM0 < 4200)

IF (TA0CCR1 < 500)

P1OUT |= BIT0;
延迟(1000);

其他

P1OUT &=~BIT0;


其他

P1OUT|= BIT0;
延迟(1000);

_BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//退出活动 CPU

我已编写上述代码、根据光电阻器上施加的光点亮 LED、但显示错误"#176-D expression has no effect"。 我不知道它的意思、请帮我解决这个问题。

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

    您好!

    您不会说问题发生在哪一行、但我知道下面的表达式无效。

    如果(2048 <= ADC12MEM0 < 3072)

    您认为 ADC12MEM0低于或等于2048、同时低于3072的逻辑存在缺陷。 您可能希望高于或等于2048。

    此外、您应该改用逻辑运算符。  

    if ((2048 >= ADC12MEM0)&&(ADC12MEM0 < 3072))

    一些示例:  

    https://www.includehelp.com/c/logical-and-operator-with-example-in-c.aspx 

    此致、

    拉斐尔