void TMR0_IRQHandler(void)
{
uint8_t state = 1; // 0表示低电平,1表示高电平
uint16_t high = 0; // 高电平加
uint16_t low = 0; // 低电平加
if (P27 == 0) // 检测到低电平
{
if (state == 1) // 如果之前是高电平状态,则开始计时低电平持续时间
{
state = 0;
low = 0;
}
low++;
}
else
{
if (state == 0) // 如果之前是低电平状态,则开始计时高电平持续时间
{
state = 1;
high = 0;
}
high++;
}
if (high==low && high + low >=714&& high + low <= 833)
{
beep(1);
}
else if (high + low < 714 && high+low>0)
{
beep(2);
}
else if (high + low > 833)
{
beep(3);
}
TIMER_ClearIntFlag(TIMER0); // 清除定时器0的中断标志
}
/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function */
/*---------------------------------------------------------------------------------------------------------*/
int main(void)
{
SYS_UnlockReg();
SYS_Init();
SYS_LockReg();
LcmInit();
GPIO_Init();