void TMR0_IRQHandler(void)
{
uint8_t state = 1; // 0表示低電平,1表示高電平
uint16_t high = 0; // 高電平加
uint16_t low = 0; // 低電平加
if (P27 == 0) // 檢測到低電平
{
if (state == 1) // 如果之前是高電平狀態(tài),則開始計時低電平持續(xù)時間
{
state = 0;
low = 0;
}
low++;
}
else
{
if (state == 0) // 如果之前是低電平狀態(tài),則開始計時高電平持續(xù)時間
{
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的中斷標(biāo)志
}
/*---------------------------------------------------------------------------------------------------------*/
/* MAIN function */
/*---------------------------------------------------------------------------------------------------------*/
int main(void)
{
SYS_UnlockReg();
SYS_Init();
SYS_LockReg();
LcmInit();
GPIO_Init();