gliethttpgliethttp.blog.chinaunix.net
gliethttp
全部博文(2005)
2014年(2)
2013年(2)
2012年(16)
2011年(66)
2010年(368)
2009年(743)
2008年(491)
2007年(317)
linux_zj
程睿
mzh2100
dogsun88
叶绍琛
kowems
gongping
chumojin
高泽然
xy7777
os123456
hiderhao
zahassio
byy6by
zxy11861
COVID_19
a1960048
swzswz
分类:
2007-10-09 14:17:54
函数指针数组应用小记文章来源:http://gliethttp.cublog.cn[转载请声明出处]#define IRQ_ARRAY_MAX 32static void (*IRQ_ARRAY[IRQ_ARRAY_MAX])(void);boolean Register_IRQ(void(*IRQ_ini)(void)){uint8 i; for(i = 0;i < IRQ_ARRAY_MAX;i++) { if(IRQ_ARRAY[i] == 0) { IRQ_ARRAY[i] = IRQ_ini; return true; }else if(IRQ_ARRAY[i] == IRQ_ini)return true;//已经存在了,在Restart_IRQ()函数中会发生该种情况 } return false;}void ARM_IRQ_Stop(void){ OS_CPU_SR_Save();//清除I和F控制位}void ARM_IRQ_Start(void){ OS_CPU_SR_Restore(0x13);//SVC模式,使能ARM的IRQ和FIQ中断}uint8 Restart_IRQ(void){uint8 i; for(i = 0;i < IRQ_ARRAY_MAX;i++) { if(IRQ_ARRAY[i]) { IRQ_ARRAY[i](); }else break; } return i;}
上一篇:不能使用软件产生518K+85HZ的标准方波
下一篇:浅析MiniGUI v1.62小内存自管理函数所在文件Fixstr.c
登录 注册