《ARM课程设计UCOSII移植实验.doc》由会员分享,可在线阅读,更多相关《ARM课程设计UCOSII移植实验.doc(5页珍藏版)》请在三一办公上搜索。
1、嵌入式系统课程设计题目:UC/OS-II移植实验学号:200805010505姓名: 1 、设计目的 (1) 掌握UC/OS-II移植到ARM的方法。 (2) 了解UC/OS-II的基本原理及移植条件。(3) 掌握UC/OS-II的用户程序的编写格式。2、设计要求 要求建立两个任务,一个按键检测任务,一个控制蜂鸣器。3、电路图(原理图)(一)蜂鸣器控制(二)LED显示4、程序/* 文 件 名:* 功 能:头文件和宏定义* 说 明:/*#include config.h#include stdlib.h/ P0.7为蜂鸣器的控制I/O#define BEEP (17) / LED控制宏函数定义。
2、LED1-LED8的控制I/O为P1.16-P1.23#define LED_ADJ 16#define LED_IOCON (0xFFLED_ADJ)#define LED_OFF() IO1SET=LED_IOCON#define LED_DISP(dat) LED_OFF(); IO1CLR=(dat)LED_ADJ)#defineTaskStkLengh100/定义用户任务堆栈长度 OS_STKTaskStk0TaskStkLengh;/Define the Task0 stack 定义用户任务0的堆栈OS_STKTaskStk1TaskStkLengh;/Define the Tas
3、k1 stack 定义用户任务1的堆栈void Task0(void *pdata);/Task0 任务0void Task1(void *pdata);/Task0 任务1/* 主函数/*int main (void)OSInit ();OSTaskCreate (Task0,(void *)0, &TaskStk0TaskStkLengh - 1, 2);OSStart ();return 0;/* Task0 任务0/*void Task0(void *pdata) const uint8 DISP_TAB32 = 0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0
4、x00, 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, 0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00, 0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0x00 ; uint8 i; pdata = pdata;TargetInit ();PINSEL0 = 0x00000000;/ 设置P0口管脚连接GPIO IO0DIR = BEEP; / 设置蜂鸣器控制口为输出 IO0SET = BEEP;IO1DIR = LED_IOCON; / 设置LED1-LED8的控制口为输出 LED_OFF(); /
5、建立任务1(用于蜂鸣器控制)OSTaskCreate (Task1,(void *)0, &TaskStk1TaskStkLengh - 1, 3);while (1) for(i=0; i32; i+) LED_DISP(DISP_TABi); / 输出LED显示数据 OSTimeDly(OS_TICKS_PER_SEC/2);/ 延时0.5S /* Task1 任务1/*void Task1(void *pdata)pdata = pdata;while (1) OSTimeDly(OS_TICKS_PER_SEC*10); / 延时10S IO0CLR = BEEP; / 控制蜂鸣器响 OSTimeDly(OS_TICKS_PER_SEC/2); IO0SET = BEEP; /* End Of File/*5、结论及分析本次设计,硬件设计完成后,将程序烧写入芯片后,实习了预期的目标,完成了两个任务:一个按键检测任务和一个控制蜂鸣器。在测试阶段遇到了一点麻烦,但是通过逐步测试,改正了之前的错误后,达到了标准。