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.

LaunchPad开发板 MSP430的延时问题

Other Parts Discussed in Thread: MSP430G2553

使用LaunchPad开发板,用的M430G2553,使用的是CCS WareLine的demo例程,其中没有时钟语句。但是不明白时钟周期是多少,延时该怎么用?

问题1:

  使用CCS WareLine的demo例程,其中没有操作时钟的语句,此时主频设为了多少?

问题2:

__delay_cycles();函数在编译器的头文件in430.h和mspg2553.h的头文件里没有定义,可以使用吗?如果使用该怎么用?

问题3:

__nop();的用法

  • zhaoyang zhao,

    Q1: 如果例程没有配置时钟系统的话,那么使用的就是默认的设置,对于MSP430G2553而言,MCLK and SMCLK are sourced from DCOCLK at ~1.1 MHz, 如果焊了XT1 32768Hz晶体,那么ACLK为32768Hz,如果没有,ACLK=VLO=12khz,具体查看数据手册。


    Q2: __delay_cycles();是本征函数,你可以在文档“slau132h-MSP430 Optimizing C or C++ Compiler v 4.2 User's Guide” 的section 6.7.1 MSP430 Intrinsics 中看到他们具体的解释。链接为: http://www.ti.com/lit/ug/slau132h/slau132h.pdf 。这些函数编译器Compiler已经实现和优化,具有较高的执行效率。直接调用即可。

    Q3: 我没有用过,等效于__no_operation(void);建议使用__no_operation(void);。 一般用于在线辅助调试。


    希望对你有帮助!O(∩_∩)O~

    Lina


  • 你好,谢谢你的答复!

    关于MSP430G2553的Launchpad的开发板的时钟我还不太明白,数据手册也没找到。

    我没有外接晶振,MCLK ,SMCLK ,ACLK的频率是多少?

    刚学习msp430,关于时钟这方面很不明白,希望你能详细的解答一下。谢谢!

  • zhaoyang zhao,

    如果你没有外接晶体,也没有配置时钟,使用的是默认的设置的话,对于MSP430G2553而言,MCLK=SMCLK=1.1MHz, ACLK=VLO= 12kHz,你可以将系统时钟从对应管脚输出,用示波器进行观察。

    输出例程如下:P1.0= ACLK, P1.4=SMCLK

    #include <msp430.h>

    int main(void)
    {
    WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer
    P1DIR |= 0x13; // P1.0,1 and P1.4 outputs
    P1SEL |= 0x11; // P1.0,4 ACLK, SMCLK output

    while(1)
    {
    P1OUT |= 0x02; // P1.1 = 1
    P1OUT &= ~0x02; // P1.1 = 0
    }
    }

    1. datasheet和user guide,请到TI官网 www.ti.com, 搜寻MSP430G2553点进去即可,链接为:http://www.ti.com.cn/product/cn/msp430g2553

    2. code example 例程, 在上面链接的software 软件部分,有MSP430G2x53, MSP430G2x33, MSP430G2x13, MSP430G2x03 Code Examples 请下载即可。

    3. launch pad培训, http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/t/6046.aspx

    4. MSP430 参考资料: http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/t/1021.aspx

    其实3和4都是deyisupport论坛本版块置顶的学习资料。

    希望对你有帮助!O(∩_∩)O~

  • 你好,谢谢你的帮助,让我少走了很多弯路!

    我刚才用示波器看了一下,P1.4输出波形为1.1MHZ,但P1.0输出的却为8.681KHZ,并不是VLO的12kHZ,请问是怎么回事?

    谢谢!

  • 你好,谢谢你的帮助,让我少走了很多弯路!

    我刚才用示波器看了一下,P1.4输出波形为1.1MHZ,但P1.0输出的却为8.681KHZ,并不是VLO的12kHZ,请问是怎么回事?

    谢谢!

  • zhaoyang zhao,

    VLO典型值是12kHz,在G2553数据手册上可查到,但是它会随着供电电压,温度等的变化而变化,范围在4k~20kHz。见数据手册“Internal Very-Low-Power Low-Frequency Oscillator (VLO)”。

    此内部VLO频率较低,功耗很小,适用与超低功耗Mode LPM3下ACLK的使用。但是稳定性不高。

    希望对你有帮助!O(∩_∩)O~

  • 另外,__delay_cycles(n);函数中参数n就是指的n个MCLK周期,故当主频(MCLK)为1MHz时,1个CPU cycle就是1us, 你可以计算一下自己想要达到的延时时间,然后合适的设置n值。

    BR,

    Lina

  • 太感谢了,多谢!

  • 不太明白msp430 IO口的工作原理,想请教一下IO口的结构,有IO的结构图吗?

  • zhaoyang zhao,

    关于MSP430IO口的内部结构图,请参照,

    1. 参照对应datasheet的PIN SCHEMATICS 部分;

    2. 为推挽模式,可参照下列链接文档,

    http://www.deyisupport.com/question_answer/microcontrollers/msp430/f/55/t/24347.aspx

    BR,

    Lina

  • 谢谢!我是从TI的LM3S系列转学430的。有一些地方还不明白?

    430能像LM3S那样设置IO管脚的工作模式吗,如高阻输入、推挽输出、开漏输出等,能设置驱动能力吗?谢谢!

  • zhaoyang zhao,

    如前面所示,430的IO是推挽模式的,只能直接通过寄存器设置其为输入或者输出。至于驱动能力,

    对应的datasheet上均有具体数据。一般默认情况下,当Vcc=3V时,IO最大可提供6mA电流,但所有IO总电流不能超过48mA.

    MSP430F5xxx/6xxx有IO强驱动能力(Full Drive Strength),可以使能,每个IO可提供15mA左右的电流。

    BR,

    Lina

  • 你好,关于CCS的操作快捷键的一些问题。

    CCS注释除了/*       */,有没有对单独多行注释 如// 的快捷键?

    代码右移为Tab,左移呢?

     

           谢谢!

     

  • zhaoyang zhao,

    zhaoyang zhao 说:
    有没有对单独多行注释 如// 的快捷键?

    选中要注释的代码,Ctrl+/即可。

    CCS中可以自己设计一些快捷键的,并且默认的一些快捷键也可以在此处查到。Window--Preferences-Keys.如下图所示。

    另外,建议你以后发新的问题时,可以重新写个帖子,没有解答的帖子,会有更多人帮忙答复的!

    BR,

    Lina


  • void main()
    {
    WDTCTL=WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL;
    IE1 |= WDTIE;
    P1DIR |= BIT0;

    _BIS_SR(LPM3_bits+GIE);
    }

    #pragma vector=WDT_VECTOR
    __interrupt void watchdog_timer(void)
    {
    P1OUT ^= BIT0;
    }

    我的输出也差不多是8.681KHZ,这是电压的问题???