Part Number: MSP430-SDK
仿真无法运行到断点,见附图!
#include "msp430f1121a.h"
#include "stdbool.h"
//----------
unsigned char FLAG_TIME,FLAG_KEY1_SF,FLAG_KEY2_SF;;
unsigned char CNT_KEY1,CNT_KEY2,CNT_SD,DATA_SD;
//---
void PRO_CLR_RAM()
{
FLAG_TIME = 0;
FLAG_KEY1_SF = 0;
FLAG_KEY2_SF = 0;
CNT_KEY1 = 0;
CNT_KEY2 = 0;
CNT_SD = 0;
}
//----
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
CCTL0 = CCIE; //使能CCR0中断
CCR0 = 4032;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
P1DIR = 0X0B; //00001011
P1OUT = 0X00;
PRO_CLR_RAM();
__bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
while(1)
{
}
}
//-----
void PRO_KEY()
{
if(FLAG_KEY1_SF == 0)
{
if((P1IN & 0X80) ==1)
{
CNT_KEY1++;
if(CNT_KEY1>=5)
{
CNT_KEY1 = 0;
FLAG_KEY1_SF = 1;
P1OUT ^= 0X01;
}
}
else
{
CNT_KEY1 = 0;
}
}
else
{
if((P1IN & 0X80)==0)
{
FLAG_KEY1_SF= 0;
}
CNT_KEY1 = 0;
}
}
/*******************************************
函数名称:Timer_A
功 能:定时器A的中断服务函数
参 数:无
返回值 :无
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void) //5MS一次中断
{
CCR0 += 4032; // Add Offset to CCR0
// P1OUT ^= 0X03;
PRO_KEY();
}您好,
迟到回复很抱歉,E2E网站似乎没有向我发送电子邮件提醒我您已回复。
客户问题,从您之前分享的图中,当您跳到此处时
,FLAG_TIME已经是1
,对吧? 如果是,代码应跳转到“if (flag_time ==1)”
让客户执行以下测试:
禁用计时器中断,并检查代码是否可以正常跳入“if (flag_time ==1)”。
正如客户所说的,“如果正确,无法全部分辨出来”,我认为这个问题可能与IAR合规者有关。 需要让客户联系IAR技术支持。