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/MSP430G2553:LED打开时的伺服

Guru**** 2611385 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/663616/ccs-msp430g2553-servo-with-led-on

部件号:MSP430G2553

工具/软件:Code Composer Studio

您好,我正尝试将0º,90º 和180º 三个位置移动到一个位置。我的目标是当伺服到达0º 和180º 时,拔出位于插针中的LED指示灯,即WFP 1.0 和WFP 1.6。  

这是我的代码,我也想优化它:

#include <MSP4S.h>

int main (void){

DCOCTL = 0x93;// 1001 0011

BCSCTL1 |= 0x0F;  


WDTCTL = WDTPW + WDTHOLD;  

P1DIR |= 0x01;
P1DIR |= 0x04;// WFP 1.2 输出
P1SEL |= 0x04;// WFP 1.2 TA1/2选件
P2SEL |= 0x00;


TACR0 = 0xFFFF;// Periodo:para que tenga un valor distinto de cero。 luego lo ajustaremos con precissi?n

TACTL |= 0x02D0;

TACTL &= 0xFEDD;

TCCTL1 |= 0x00E0;

TCCTL1 &= 0x3EEF;

TACR0 = 0x9C3F;  
TACR1 = 0x07D0;  


同时(1){
易失性无符号int I;


TACR1 =1000;
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);


TACR1 =3000;
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);


TACR1 =6500;
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);
对于(i=0;i<=6.5万;i++);

IF (TACR1 == 1000)

P1OUT = 0x41;
}
否则

P1OUT = 0x41;

}}}

PD:我是新的编程微秒

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

    您好,

    首先,我建议浏览CCS内部资源管理器中与计时器模块相关的代码示例。 您的代码似乎同时使用了延迟(在For循环中完成)和一些计时器代码-只需执行其中一项操作即可。 对于计时器,您可以将其设置为触发将触发的ISR,而不是只是在while ()循环中延迟CPU。 MSP430G2553用户指南应该对此有所说明。

    此外,这里还有一些其他资源。 我也鼓励在论坛中搜索!

    此致,

    詹姆斯

    MSP客户应用程序