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();
}