📄 timer.c
字号:
#include <CsAgb.h>
#include <rbasic.h>
#include <rb_deamon.h>
#include <math.h>
#define RB_TM3D *(u16*)0x400010C//时钟
#define RB_TM3C *(u16*)0x400010E//时钟属性
#define RB_IME *(u16*)0x4000208//中断开关
#define TM_ON 128//开时钟
#define TM_BR 64 //开中断
#define TM_CL 1 //刷新频率(0.25秒)
u32 TM_CN=0;//时钟遍数器
u32 _RndSeed;
extern u8 music_cnt;
extern u16 is_play_wav;
void (*sys_deamon)();
void timer()
{
TM_CN++;
if (sys_deamon) sys_deamon();
if (is_play_wav>1) is_play_wav--;
else if (is_play_wav) {is_play_wav=0;stop_dsound();}
if (is_basic_run)
{
if (music_cnt) music_cnt--;
else ply_music();
CS_ReadKey();
if(CS_IsKeyHold(KEY_R)&&CS_IsKeyHold(KEY_L)) is_basic_run=basic_end;
rb_deamons();
}
}
void TMstart()//开时钟
{
RB_TM3C=TM_ON|TM_CL|TM_BR;//开时钟
RB_TM3D=0;
RB_IME=1;
CS_EnableIntReq(TIMER3_INTR_FLAG);
CS_SetIntrFunc(TIMER3_INTR_FLAG,timer);
}
void TMend()//停止时钟
{
RB_TM3C=0;
}
u32 get_time()//取得当前时钟
{
return TM_CN;
}
void wait(u32 count)//等待count毫秒
{
u32 i,j;
for (i=0;i<(count>0xefff?0xefff:count);i++)
for (j=0;j<10000;j++) j++;
}
u32 rnd(u32 seed)
{
_RndSeed=1664525*_RndSeed+1013904223+(u32)RB_TM3D;
return _RndSeed%(seed?seed:1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -