欢迎来到天天文库
浏览记录
ID:21134595
大小:164.00 KB
页数:8页
时间:2018-10-19
《ucos上多任务实例-流水灯》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、最近入手了GPHONE,所以这两周时间都在玩手机,ARM以及UCOS的学习进度就相对落后了(负罪感),今晚强制自己定下心来,完成了第一个UCOS的实例调试。对于电子初学者来说,流水灯实验就相当于计算机初学者的“HELLOWORLD”,相信大多数电子初学者完成自己的流水灯程序的时候也是成就感满怀的。第一次在PROTEUS上调试UCOS的多任务,所以挑了流水灯这个起步实例来实现;随后在实现了流水灯效果的基础上再扩展实验一下多任务的创建以及调度,添加了数码管的显示功能。成就感满怀啊!!!环境:芯片:ARM7LPC2106 环境:ADS1.2+PROTEUS效果: 相关MAI
2、N.C的代码(有兴趣并需要完整仿真包的朋友可以留言给我):1: 2:/********************************************************************************************************/3: 4:#include"config.h"5:#defineucharunsignedchar6:#defineTASK_STK_SIZE647: 8:OS_STKMain_TaskStk[TASK_STK_SIZE];9:OS_STKLed_TaskStk[TASK_STK_SIZE];1
3、0: 11:voidLED_On(uint8led)12:{13:switch(led){14:case0:15:IOCLR=0x0000FFFF;16:break;17: 18:case1:19:IOCLR=1<<0;20:break;21: 22:case2:23:IOCLR=1<<1;24:break;25: 26:case3:27:IOCLR=1<<2;28:break;29: 30:case4:31:IOCLR=1<<3;32:break;33: 34:case5:35:IOCLR=1<<4;36:break;37: 38:case6:39:IOCLR=1<<
4、5;40:break;41: 42:case7:43:IOCLR=1<<6;44:break;45: 46:case8:47:IOCLR=1<<7;48:break;49:}50:}51:voidLED_Off(uint8led)52:{53:switch(led){54:case0:55:IOSET=0x0000FFFF;56:break;57: 58:case1:59:IOSET=1<<0;60:break;61: 62:case2:63:IOSET=1<<1;64:break;65: 66:case3:67:IOSET=1<<2;68:break;69: 70:c
5、ase4:71:IOSET=1<<3;72:break;73: 74:case5:75:IOSET=1<<4;76:break;77: 78:case6:79:IOSET=1<<5;80:break;81: 82:case7:83:IOSET=1<<6;84:break;85: 86:case8:87:IOSET=1<<7;88:break;89:}90:}91: 92:voidMain_Task(void*data);93:voidLed_Task(void*pdata);94:/********************************************
6、*************************************************************95:**函数名称:main96:**功能描述:c语言的主函数,由它启动多任务环境97:********************************************************************************************************/98:intmain(void)99:{100:OSInit();101: 102:OSTaskCreate(Main_Task,(void*)0,&Mai
7、n_TaskStk[TASK_STK_SIZE-1],0);//任务1103:OSTaskCreate(Led_Task,(void*)0,&Led_TaskStk[TASK_STK_SIZE-1],1);//任务2104:OSStart();105:return0;106:}107:voidLED_Init(void)108:{109:PINSEL0=0;/*UseGPIOpinsP0.0toP0.15forLEDs*/110:IODIR
8、=0x0000FFFF;/*SetGPIOpinsasoutputs*/111: 112:LED_
此文档下载收益归作者所有