s3c2440实时时钟中断(二)

2014-11-24 09:15:12 · 作者: · 浏览: 2
}


}


else if(command ==0xbb) //报警时间


{


alarm_buffer[count]=ch;


count++;


if(count==7)


{


set_alarm();


count=0;


command=0;


rUTXH0=0xbb;


}


}


}


}


}



//报警中断


void __irq Alarm_ISR(void)


{


rSRCPND |= 0x1<<30;


rINTPND |= 0x1<<30;



rTICNT = 0xbf; //开启时间节拍中断,周期为500毫秒


}



//时间节拍中断,用于LED闪烁15秒


void __irq RTCTick_ISP(void)


{


static char count;


rSRCPND |= 0x1<<8;


rINTPND |= 0x1<<8;



if(count%2==0) //LED亮0.5秒


rGPBDAT = ~0x1e0;


else //LED灭0.5秒


rGPBDAT = 0x1e0;


count++;


if(count==30)


{


rTICNT = 0x0; //禁止时间节拍中断


rGPBDAT = 0x1e0; //LED灭


count=0;


}


}



void Main(void)


{


//初始化


…… ……


//中断源


pISR_UART0 = (U32)uartISR;


pISR_EINT0 = (U32)Key4_ISR;


pISR_EINT1 = (U32)Key1_ISR;


pISR_RTC = (U32)Alarm_ISR;


pISR_TICK = (U32)RTCTick_ISP;


…… ……


Brush_Background(0xffffff);


show_date();



flag=0;



while(1)


{


if(flag) //显示实时时间


{


Brush_Background(0xffffff);


show_date();


flag=0;


}


}


}