📄 rtc.c
字号:
#include"config.h"
void __irq timer0_int(void)
{uint8 i;
xhanzi(0,XX-7,0,0,CCTAB);
xhanzi(0,XX-5,1,0,CCTAB);
xhanzi(0,XX-3,2,0,CCTAB);
xhanzi(0,XX-1,3,0,CCTAB);
if(XX<=18)
for(i=XX+1;i<=20;i++)
{
xhanzi(0,i,4,0,CCTAB);
}
XX-=1;
if(XX==0)
{
xhanzi(0,0,4,0,CCTAB);
XX=27;
}
T0IR=0x01;
VICVectAddr=0;
}
void __irq RTC_int(void)
{
uint32 TIMES,TEMP;
TEMP=CTIME1;
TIMES=CTIME0;
xhanzi(26,0,((TEMP>>16)&0xffff)/1000,1,shuzi);
xhanzi(26,1,((((TEMP>>16)&0xffff)%1000)/100),1,shuzi);
xhanzi(26,2,(((((TEMP>>16)&0xffff)%1000)%100)/10),1,shuzi);
xhanzi(26,3,(((((TEMP>>16)&0xffff)%1000)%100)%10),1,shuzi);
// xhanzi(26,4,0,1,TESHU);
xhanzi(26,5,(((TEMP>>8)&0x0f)/10),1,shuzi);
xhanzi(26,6,(((TEMP>>8)&0x0f)%10),1,shuzi);
// xhanzi(26,7,0,1,TESHU);
xhanzi(26,8,((TEMP&0x1f)/10),1,shuzi);
xhanzi(26,9,((TEMP&0x1f)%10),1,shuzi);
// xhanzi(26,10,0,1,TESHU);
xhanzi(43,4,(((TIMES>>24)&0x07)%7),0,WEEKSHU);
// xhanzi(57,12,0,1,TESHU);
xhanzi(59,0,(((TIMES>>16)&0x1f)/10),1,shuzi);
xhanzi(59,1,(((TIMES>>16)&0x1f)%10),1,shuzi);
// xhanzi(59,2,0,1,TESHU);
xhanzi(59,3,(((TIMES>>8)&0x3f)/10),1,shuzi);
xhanzi(59,4,(((TIMES>>8)&0x3f)%10),1,shuzi);
// xhanzi(59,5,0,1,TESHU);
xhanzi(59,6,((TIMES&0x3f)/10),1,shuzi);
xhanzi(59,7,((TIMES&0x3f)%10),1,shuzi);
ILR=0X01;
VICVectAddr=0;
}
void time_init(void)
{
PREINT=Fpclk/32768-1;
PREFRAC=Fpclk-(Fpclk/32768)*32768;
YEAR=2008;
MONTH=9;
DOM=21;
DOW=6;
HOUR=17;
MIN=15;
SEC=0;
CIIR=0x01;
CCR=0x01;
T0TC=0;
T0PR=0;
T0MCR=0x03;
T0MR0=Fpclk/10;
T0TCR=0x01;
VICIntSelect=0x00000000;
VICVectCntl0=0x24;
VICVectAddr0=(int)timer0_int;
VICVectCntl1=0x2d;
VICVectAddr1=(int)RTC_int;
VICIntEnable=(1<<4)|(1<<13);
}
void riqi_init(void)
{
xhanzi(26,0,YEAR/1000,1,shuzi);
xhanzi(26,1,((YEAR%1000)/100),1,shuzi);
xhanzi(26,2,(((YEAR%1000)%100)/10),1,shuzi);
xhanzi(26,3,(((YEAR%1000)%100)%10),1,shuzi);
xhanzi(26,4,0,1,TESHU);
xhanzi(26,5,(MONTH/10),1,shuzi);
xhanzi(26,6,(MONTH%10),1,shuzi);
xhanzi(26,7,0,1,TESHU);
xhanzi(26,8,(DOM/10),1,shuzi);
xhanzi(26,9,(DOM%10),1,shuzi);
xhanzi(43,0,5,0,CCTAB);
xhanzi(43,2,6,0,CCTAB);
// xhanzi(26,10,0,1,TESHU);
xhanzi(43,4,((DOW&0x07)%7),0,WEEKSHU);
// xhanzi(57,12,0,1,TESHU);
xhanzi(59,0,(HOUR/10),1,shuzi);
xhanzi(59,1,(HOUR%10),1,shuzi);
xhanzi(59,2,0,1,TESHU);
xhanzi(59,3,(MIN/10),1,shuzi);
xhanzi(59,4,(MIN%10),1,shuzi);
xhanzi(59,5,0,1,TESHU);
xhanzi(59,6,(SEC/10),1,shuzi);
xhanzi(59,7,(SEC%10),1,shuzi);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -