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 5仿真的问题 跪求指点

Other Parts Discussed in Thread: MSP430G2553

我用的ccs 5   为什么有的程序在仿真时正常(比如让一个led 一秒闪烁) ,但当按下停止键的时候 ,怎么一下子都没反应了(led不闪烁了)。并且是有的程序没事 有的有这种问题,求大仙指点

  • 首先,不清楚楼主的电路和代码,不知道具体的这个停止键有没有相关的程序。

    建议楼主对照电路图,核实代码,看有没有根据这个按键执行的程序。或者是折个按键的电路有没有影响到mcu的正常运行。

  • 板子用的Launch Pad G2553的。。我说的是用ccs调试的时候,按全速运行可以,点击停止( )板子 就没反应了,例如下面的程序  (但有的程序点击停止后板子和全速运行一样)

    //利用定时器扫描机械按键的原理消除抖动


    #include <msp430G2553.h>
    void P1_IODect();
    void P13_Onclick();
    void GPIO_Init();
    void WDT_Init();
    /*
    * main.c
    */
    void main(void) {
    WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
    GPIO_Init();
    WDT_Init();
    _enable_interrupts();
    _bis_SR_register(LPM3_bits);
    }
    void GPIO_Init()
    {
    P1DIR|=BIT0+BIT6;
    P1OUT|=BIT0;
    P1OUT&=~BIT6;

    P1REN|=BIT3;
    P1OUT|=BIT3;

    }
    void WDT_Init()
    {
    WDTCTL=WDT_ADLY_16;
    IE1|=WDTIE; //WDT中断使能
    }
    #pragma vector=WDT_VECTOR
    __interrupt void WDT_ISR(void)
    {
    P1_IODect();
    //wdt定时中断独占中断向量,无需人工清楚工作标志位
    // P1IFG=0;

    }
    void P1_IODect()
    {
    static unsigned int key_now=0; //变量出函数时候需要保留
    unsigned int key_pass=0;
    key_pass=key_now;

    //查询IO输入寄存器
    if(P1IN&BIT3) key_now=1;
    else key_now=0;


    if((key_pass==1)&&(key_now==0))
    P13_Onclick();

    }
    void P13_Onclick()
    {
    P1OUT^=BIT0;
    P1OUT^=BIT6;

    }

    对了我还想问一下  全速运行后,程序是不是就烧录到板子进去了

  • 板子用的Launch Pad G2553的。。我说的是用ccs调试的时候,按全速运行可以,点击停止( )板子 就没反应了,例如下面的程序  (但有的程序点击停止后板子和全速运行一样)

    //利用定时器扫描机械按键的原理消除抖动


    #include <msp430G2553.h>
    void P1_IODect();
    void P13_Onclick();
    void GPIO_Init();
    void WDT_Init();
    /*
    * main.c
    */
    void main(void) {
    WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
    GPIO_Init();
    WDT_Init();
    _enable_interrupts();
    _bis_SR_register(LPM3_bits);
    }
    void GPIO_Init()
    {
    P1DIR|=BIT0+BIT6;
    P1OUT|=BIT0;
    P1OUT&=~BIT6;

    P1REN|=BIT3;
    P1OUT|=BIT3;

    }
    void WDT_Init()
    {
    WDTCTL=WDT_ADLY_16;
    IE1|=WDTIE; //WDT中断使能
    }
    #pragma vector=WDT_VECTOR
    __interrupt void WDT_ISR(void)
    {
    P1_IODect();
    //wdt定时中断独占中断向量,无需人工清楚工作标志位
    // P1IFG=0;

    }
    void P1_IODect()
    {
    static unsigned int key_now=0; //变量出函数时候需要保留
    unsigned int key_pass=0;
    key_pass=key_now;

    //查询IO输入寄存器
    if(P1IN&BIT3) key_now=1;
    else key_now=0;


    if((key_pass==1)&&(key_now==0))
    P13_Onclick();

    }
    void P13_Onclick()
    {
    P1OUT^=BIT0;
    P1OUT^=BIT6;

    }

    对了我还想问一下  全速运行后,程序是不是就烧录到板子进去了