uCOSII嵌入式的系统示例代码_第1页
uCOSII嵌入式的系统示例代码_第2页
uCOSII嵌入式的系统示例代码_第3页
uCOSII嵌入式的系统示例代码_第4页
uCOSII嵌入式的系统示例代码_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/主函数模板#i ncludeINCLUDES.H#i ncludemx1_aitc.h#i ncludeIRQ.h/*包含与uC/OS-ll相关的系统调用的头文件*/*包含与中断控制器相关的头文件*/*包含与中断管理相关的头文件*/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK256#defi ne PRIO_TASK3OS_STK StkTaskSTK_SIZE_TASK;/*分配给任务的堆栈大小 */*任务的优先级*/*为任务分配堆栈空间 *

2、/*此函数定义了一个任务*/void YourTask( void *pdata )/*开启uC/OS-ll的时钟中断(必须在第IRQ_Register( OSTickISR, TIMER1_INT ); 一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容while( 1 )/*初始化后,从这里开始执行int _main( void )MX1_AITC_I nit();IRQ_I nit();*/C代码*/*初始化中断控制器*/*初始化中断管理*/OSI ni t();/*初始化uC/OS-ll内核数据结构*/*建立一个任务*/OSTaskCreate( Yo

3、urTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/LED闪烁/led.c#i ncludeINCLUDES.H/*包含与uC/OS-ll相关的系统调用的头文件*/#i ncludeled.h/* Led驱动接口函数的说明头文件*/#i ncludemx1_gpio.h/*包含与通用IO 口相关的头文件*/#i ncludemx1_aitc.h/*包含与中断控制器相关的头文件*/#i ncludemx1_uart.h/*包含与串口相关的头文件 */#in cludeIRQ.h/*包含与中断

4、管理相关的头文件*/*用于时钟中断*/extern void OSStartTimeTick( void ); extern void OSTickISR( void );#defi ne STK_SIZE_LEDDEMO256#define PRIO LEDDEMO3/*分配给任务的堆栈大小*/*任务的优先级*/OS_STK StkLedDemoSTK_SIZE_LEDDEMO;/*为任务分配堆栈空间*/*此函数定义了一个任务*/void LedDemo( void *pdata )IRQ_Register( OSTicklSR, TIMER1_INT ); 一个运行的任务里进行)*/OSS

5、tartTimeTick();/*开启uC/OS-ll的时钟中断(必须在第/*在下面添加任务内容*/while( 1 )LED_ 0n( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ 0n( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED3 ); OSTimeDlyHMSM( 0, 0, 0, 500 );/*初始化后,从这里开始执行C代码*/*依次点亮LED*/*延时500毫秒*/*依次熄灭LED*/intmai

6、n( void )MX1_AITC_I nit();/*初始化中断控制器*/初始化通用IO端口 C */ 初始化串口 1 */ 初始化中断管理*/初始化LED */MX1_GPIO_I nit(MX1_GPIO_PC); /* MX1_UART_I nit(COM1);/*IRQ_I nit();/*LEDnit( LED3 );/*LED_ In it( LED4 );MX1_UART_PutStri ng(COM1,nrnruC/OS-ll is ini tializ in g.nr,33);OSInit();/*初始化uC/OS-ll内核数据结构 */* 建立一个任务 */OSTaskC

7、reate( LedDemo, 0, & StkLedDemoSTK_SIZE_LEDDEMO-1, PRIO_LEDDEMO );MX1_UART_PutStri ng(COM1,Ru nnin g.nr,12);OSStart();/* 开始调度 */ return 0;/LED闪烁#i ncludeINCLUDES.H#in eludemx1 aitc.h#i ncludeIRQ.h#i ncludeled.h#in cludemx1_gpio.h/*包含与uC/OS-ll相关的系统调用的头文件 */*包含与中断控制器相关的头文件*/*包含与中断管理相关的头文件*/* Led驱动接口函数

8、的说明头文件*/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK256/*分配给任务的堆栈大小*/#defi ne PRIO_TASK3/*任务的优先级*/*为任务分配堆栈空间*/OS_STK StkTaskSTK_SIZE_TASK;/*此函数定义了一个任务*/void YourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启 uC/OS-ll 的时钟中断(必须在第一个运行

9、的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容*/LED_Init( LED3 );/* 初始化 */LED_I nit( LED5 );LED_I nit( LED7 );while( 1 )LED_ On( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED5 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED5 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_

10、 On( LED7 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED7 );OSTimeDlyHMSM( 0, 0, 0, 500 );/*初始化后,从这里开始执行int _main( void )MX1_AITC_I nit();C代码*/*初始化中断控制器*/*初始化中断管理*/OSI ni t();/*初始化uC/OS-ll内核数据结构*/*建立一个任务*/OSTaskCreate( YourTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;IRQ

11、nit();/按钮开关#i nclude#i nclude#i nclude#i nclude#in cludeINCLUDES.Hmx1_aitc.h IRQ.hled.hswitch.h#defi ne STK_SIZE_TASK#defi ne PRIO_TASK/*为任务分配堆栈空间*/*包含与uC/OS-ll相关的系统调用的头文件*/*包含与中断控制器相关的头文件*/*包含与中断管理相关的头文件*/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );256/*分配给任务的堆栈大小*/3/

12、*任务的优先级*/OS_STK StkTaskSTK_SIZE_TASK;/*此函数定义了一个任务*/void YourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启 uC/OS-ll 的时钟中断(必须在第一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容 */LED_I nit( LED3 );LED_I nit( LED4 );LED_I nit( LED5 );LED_I nit( LED6 );LED_I nit( LED7 );LED_I nit( LED8 );LED_I

13、 nit( LED9 );LED_I nit( LED10 );SWITCHnit( SW2 );/* 初始化开关 */SWITCHn it( SW3 );SWITCHn it( SW4 );SWITCHn it( SW5 );SWITCHn it( SW6 );SWITCHn it( SW7 );SWITCHn it( SW8 );SWITCHn it( SW9 );while( 1 )if( SWITCH_IS_ON( SW2 )LED_ On( LED3 );elseLED_Off( LED3 );/if( SWITCH_IS_ON( SW3 )LED_ On( LED4 );elseL

14、ED_Off( LED4 );/if( SWITCH_IS_ON( SW4 )LED_ On( LED5 );elseLED_Off( LED5 );/if( SWITCH_IS_ON( SW5 )LED_ On( LED6 );elseLED_Off( LED6 );/*/if( SWITCH_IS_ON( SW6 )LED_ On( LED7 );elseLED_Off( LED7 );/if( SWITCH_IS_ON( SW7 )LED_ On( LED8 );elseLED_Off( LED8 );/if( SWITCH_IS_ON( SW8 )LED_ On( LED9 );els

15、eLED_Off( LED9 );/if( SWITCH_IS_ON( SW9 )LED_ On( LED10 );elseLED_Off( LED10 );/*初始化后,从这里开始执行C代码*/int _main( void )MX1_AITC_Init();/*初始化中断控制器 */IRQ_I nit();/*初始化中断管理*/OSI nit();/*初始化uC/OS-ll内核数据结构*/*建立一个任务*/OSTaskCreate( YourTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/*开始调度*/return 0;/

16、 主板 I/O LED#i ncludeINCLUDES.H#i ncludemx1_aitc.h#i ncludeIRQ.h#i ncludemx1_gpio.h#i ncludeled.h/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK256#defi ne PRIO_TASK3OS_STK StkTaskSTK_SIZE_TASK;/*分配给任务的堆栈大小 */*任务的优先级*/*为任务分配堆栈空间 */*此函数定义了一个任务*/void Y

17、ourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT ); 一个运行的任务里进行)*/OSStartTimeTick();/*开启uC/OS-ll的时钟中断(必须在第/*在下面添加任务内容 */LED_Init( LED3 );/* LED的初始化,需要调用 GPIO的接口设置函数 */LED_I nit( LED4 );LED_I nit( LED5 );LED_I nit( LED6 );LED_I nit( LED7 );LED_I nit( LED8 );LED_I nit( LED9 );LED_I nit( LED10

18、);while( 1 )LED_ 0n( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED5 );/*包含与uC/OS-ll相关的系统调用的头文件*/*包含与中断控制器相关的头文件*/*包含与中断管理相关的头文件*/OSTimeDlyHMSM( 0, 0, 0, 500 )

19、;LED_Off( LED5 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED6 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED6 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED7 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED7 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED8 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED8 );OSTimeD

20、lyHMSM( 0, 0, 0, 500 );LED_ On( LED9 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED9 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED10 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED10 );OSTimeDlyHMSM( 0, 0, 0, 500 );/*初始化后,从这里开始执行C代码*/int _main( void )MX1_GPIO_I nit( MX1_GPIO_PC );MX1_AITC_Init();/*初始化中断控制

21、器 */IRQ_I ni t();/*初始化中断管理*/OSInit();/*初始化uC/OS-ll内核数据结构 */*建立一个任务*/OSTaskCreate( YourTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/串口通信#i ncludeINCLUDES.H/*包含与uC/OS-ll相关的系统调用的头文件*/#i ncludemx1_aitc.h/*包含与中断控制器相关的头文件*/#i ncludeIRQ.h/*包含与中断管理相关的头文件*/#i ncludemx1_gpio.h#

22、i ncludemx1_uart.h#in clude/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK256#defi ne PRIO_TASK3OS_STK StkTaskSTK_SIZE_TASK;/*分配给任务的堆栈大小 */*任务的优先级*/*为任务分配堆栈空间 */*此函数定义了一个任务*/void YourTask( void *pdata )char tmp;IRQ_Register( OSTicklSR, TIMER1_INT );

23、 一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容*/MX1_UART_I nit( COM1 );/*开启uC/OS-ll的时钟中断(必须在第MX1_UART_PutStri ng( COM1, In put a Char:, strle n(l nput a Char:);while( 1 )MX1_UART_GetChar( COM1, &tmp ); /*显示输入的字符 */MX1_UART_PutChar( COM1, tmp );/*初始化后,从这里开始执行C代码*/int _main( void )MX1_AITC_I nit();IRQ_I

24、nit();/*初始化中断控制器*/*初始化中断管理*/OSI ni t();/*初始化uC/OS-ll内核数据结构*/*建立一个任务*/OSTaskCreate( YourTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/AD转换/misc.c adc0809.c#i ncludeINCLUDES.H/*包含与uC/OS-ll相关的系统调用的头文件*/#i ncludemx1_aitc.h/*包含与中断控制器相关的头文件*/#i ncludeIRQ.h/*包含与中断管理相关的头文件*/#i

25、 ncludemx1_gpio.h#i ncludemx1_uart.h#i ncludeadc0809.h#in cludemisc.h/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK256#defi ne PRIO_TASK3OS_STK StkTaskSTK_SIZE_TASK;/*分配给任务的堆栈大小 */*任务的优先级*/*为任务分配堆栈空间 */*此函数定义了一个任务 */void YourTask( void *pdata )char

26、 tmp16;IRQ_Register( OSTicklSR, TIMER1_INT );/* 开启 uC/OS-ll 的时钟中断(必须在第一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容*/ADC0809ni t();while( 1 )/*将电压值放大10 0倍,通过串口显示 */MX1_UART_PutString( COM1,tmp, IntToStr(500*ADC0809_READ_CHANNEL( 4 )/256, tmp, 16);MX1_UART_PutChar( COM1,);OSTimeDlyHMSM( 0, 0, 1,0 );/*初始

27、化后,从这里开始执行C代码*/int _main( void )MX1_AITC_Init();/*初始化中断控制器 */IRQ_I ni t();/*初始化中断管理*/MX1_UART_I nit( COM1 );OSInit();/*初始化uC/OS-ll内核数据结构 */*建立一个任务*/OSTaskCreate( YourTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/LCD#i ncludeINCLUDES.H/*包含与uC/OS-ll相关的系统调用的头文件*/#i nclude

28、mx1_aitc.h/*包含与中断控制器相关的头文件*/#i ncludeIRQ.h/*包含与中断管理相关的头文件*/#i ncludemx1_gpio.h#i ncludemisc.h#i ncludemx1cdc.h/*用于时钟中断*/extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK256/*分配给任务的堆栈大小*/#define PRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */*此

29、函数定义了一个任务*/void YourTask( void *pdata )int i;IRQ_Register( OSTicklSR, TIMER1_INT );/* 开启 uC/OS-ll 的时钟中断(必须在第一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容*/MX1_LCDC_DrawRect( 0, 0, 319, 239, 50, 50, LS_SOLID, FS_SOLID );MX1_LCDC_DrawSquare( 0,0, 120, 15, 31, LS_SOLID, FS_SOLID );MX1_LCDC_DrawCircle( 60,

30、 180,60, 15, 47, LS_SOLID, FS_DOTDOT );MX1_LCDC_DrawRect( 120, 120, 319, 239, 50, 47, LS_SOLID, FS_DOTDOT );MX1_LCDC_DrawEllipse( 120, 0, 319, 120, 31,47, LS_SOLID, FS_SOLID );i=0;while( 1 )if( i+%2 )MX1_LCDC_DrawSquare( 0,0, 120, 15, 31, LS_SOLID, FS_SOLID );elseMX1_LCDC_DrawSquare( 0,0, 120, 31, 1

31、5, LS_SOLID, FS_SOLID ); OSTimeDlyHMSM( 0, 0, 1,0 );/*初始化后,从这里开始执行C代码*/int _main( void )un sig ned in t paletteLCDC_CMRAM_SIZE;#defi neLCDC_CMRAM_SIZE 256int i;MX1_AITC_I nit();IRQ_I nit();/*初始化中断控制器*/*初始化中断管理*/OSI nit();/*初始化uC/OS-ll内核数据结构*/初始化LCDMX1_LCDC_I nit(LCDC_PANEL_WIDTH,/屏幕宽320LCDC_PANEL_HE

32、IGHT,/屏幕咼240LCDC_INIT_STARTX,/显存帧X 0LCDC_INIT_STARTY,/显存帧Y 0LCDC_VPW,/虚拟页宽1024*3LCDC_PANEL_CONF,/显示屏参数LCDC_BPP );/像素颜色位数8/初始化调色板for( i=0; i16; i+ )palettei = RGB( i, 0, 0 );palettei+16= RGB( 0, i, 0 );palettei+32= RGB( 0, 0, i );palettei+48= RGB( i, i, i );MX1_LCDC_CMRAM_Set( palette );/*建立一个任务*/OST

33、askCreate( YourTask, 0, & StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/多任务#i ncludeINCLUDES.H#in eludemx1 aitc.h#i ncludeIRQ.h#i ncludeled.h#defi ne PRIO_TASK1/*任务的优先级*/*包含与uC/OS-ll相关的系统调用的头文件 */*包含与中断控制器相关的头文件*/*包含与中断管理相关的头文件*/* Led驱动接口函数的说明头文件*/#in clude mx1_gpio.h#i ncludemis

34、c.h#in cludemx1cdc.h /*用于时钟中断*/ extern void OSStartTimeTick( void );extern void OSTickISR( void );#defi ne STK_SIZE_TASK1256/*分配给任务的堆栈大小*/#defi ne STK_SIZE_TASK2256#defi ne STK_SIZE_TASK3256/*为任务分配堆栈空间*/*开启uC/OS-ll的时钟中断(必须在第#define PRIO TASK24#defi ne PRIO_TASK35OS_STK StkTask1STK_SIZE_TASK1;OS_STK

35、StkTask2STK_SIZE_TASK2;OS_STK StkTask3STK_SIZE_TASK3;/*此函数定义了一个任务*/void YourTask1( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT ); 一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容 */LED_Init( LED3 );/* 初始化 */LED_I nit( LED4 );LED_I nit( LED5 );LED_I nit( LED6 );while( 1 )LED_ On( LED3 );OSTimeDlyHMSM(

36、 0, 0, 0, 500 );LED_Off( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED5 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED5 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_ On( LED6 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off(

37、 LED6 ); OSTimeDlyHMSM( 0, 0, 0, 500 );/*此函数定义了一个任务 */void YourTask2( void *pdata )/*在下面添加任务内容 */LED_Init( LED7 );/* 初始化 */LED_I nit( LED8 );LED_I nit( LED9 );LED_I nit( LED10 );while( 1 )LED_ On( LED7 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_ On( LED8 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_ On( LED9 );OSTi

38、meDlyHMSM( 0, 0, 0, 200 );LED_ On( LED10 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_Off( LED10 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_Off( LED9 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_Off( LED8 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_Off( LED7 );OSTimeDlyHMSM( 0, 0, 0, 200 );/*此函数定义了一个任务*/void YourTask3( void *pdata

39、)int i;IRQ_Register( OSTicklSR, TIMER1_INT );/* 开启 uC/OS-ll 的时钟中断(必须在第一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容*/MX1_LCDC_DrawRect( 0, 0, 319, 239, 50, 50, LS_SOLID, FS_SOLID );MX1_LCDC_DrawSquare( 0,0, 120, 15, 31, LS_SOLID, FS_SOLID );MX1_LCDC_DrawCircle( 60, 180,60, 15, 47, LS_SOLID, FS_DOTDOT )

40、;MX1_LCDC_DrawRect( 120, 120, 319, 239, 50, 47, LS_SOLID, FS_DOTDOT );MX1_LCDC_DrawEllipse( 120, 0, 319, 120, 31,47, LS_SOLID, FS_SOLID );i=0;while( 1 )if( i+%2 )MX1_LCDC_DrawSquare( 0,0, 120, 15, 31, LS_SOLID, FS_SOLID );elseMX1_LCDC_DrawSquare( 0,0, 120, 31, 15, LS_SOLID, FS_SOLID ); OSTimeDlyHMSM

41、( 0, 0, 1,0 );/*初始化后,从这里开始执行C代码*/int _main( void )int i;un sig ned in t paletteLCDC_CMRAM_SIZE;MX1_AITC_I nit();IRQ_I nit();/初始化LCD/*初始化中断控制器*/*初始化中断管理*/MX1_LCDC_I nit(LCDC_PANEL_WIDTH, LCDC_PANEL_HEIGHT,LCDC_INIT_STARTX, LCDC_INIT_STARTY, LCDC_VPW, LCDC_PANEL_CONF, LCDC_BPP );/初始化调色板for( i=0; i16;

42、i+ )palettei = RGB( i, 0, 0 );palettei+16= RGB( 0, i, 0 );palettei+32= RGB( 0, 0, i );palettei+48= RGB( i, i, i );MX1_LCDC_CMRAM_Set( palette );OSI nit();/*初始化uC/OS-ll内核数据结构*/*建立任务*/OSTaskCreate( YourTaskl, 0, & StkTask1STK_SIZE_TASK1-1, PRIO_TASK1 );OSTaskCreate( YourTask2, 0, & StkTask2STK_SIZE_TA

43、SK2-1, PRIO_TASK2 );OSTaskCreate( YourTask3, 0, & StkTask3STK_SIZE_TASK3-1, PRIO_TASK3 );OSStart();/*开始调度*/return 0;/信号量#i ncludeINCLUDES.H/*包含与uC/OS-ll相关的系统调用的头文件*/#i ncludemx1_aitc.h/*包含与中断控制器相关的头文件*/#i ncludeIRQ.h/*包含与中断管理相关的头文件*/#i ncludemx1_gpio.h#i ncludemisc.h#i ncludemx1cdc.h/*用于时钟中断*/extern

44、 void OSStartTimeTick( void );256/*分配给任务的堆栈大小*/256extern void OSTickISR( void );#defi ne STK_SIZE_TASK1#defi ne STK_SIZE_TASK2#defi ne PRIO_TASK13/*任务的优先级*/*为任务分配堆栈空间*/#defi ne PRIO_TASK24OS_STK StkTask1STK_SIZE_TASK1;OS_STK StkTask2STK_SIZE_TASK2;OS_EVENT *pLCDSem;/* 用于 LCD的信号量 */*此函数定义了一个任务*/void

45、YourTask1( void *pdata )INT8U err;IRQ_Register( OSTickISR, TIMER1_INT );/* 开启 uC/OS-ll 的时钟中断(必须在第一个运行的任务里进行)*/OSStartTimeTick();/*在下面添加任务内容 */MX1_LCDC_DrawRect( 0,0, LCDC_PANEL_WIDTH-1 ,LCDC_PANEL_HEIGHT-1,48, 48,LS_SOLID, FS_SOLID );while( 1 )OSSemPe nd( pLCDSem, 0, &err );MX1_LCDC_DrawRect(20, 20,

46、 LCDC_PANEL_WIDTH-20L CDC_PANEL_HEIGHT-2015,15, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect(40, 40, LCDC_PANEL_WIDTH-40L CDC_PANEL_HEIGHT-4031,31, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect(50, 60, LCDC_PANEL_WIDTH-60L CDC_PANEL_HEIGHT-6047,47, LS_SOLID, FS_SOLID );OSTimeDlyHMSM( 0, 0, 4, 0 );MX1_LCDC_DrawRe

47、ct(20, 20, LCDC_PANEL_WIDTH-20L CDC_PANEL_HEIGHT-2048,48, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect(40, 40, LCDC_PANEL_WIDTH-40L CDC_PANEL_HEIGHT-4048,48, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect(60, 60, LCDC_PANEL_WIDTH-60L CDC_PANEL_HEIGHT-6048,48, LS_SOLID, FS_SOLID );OSSemPost( pLCDSem );/*此函数定义了一个任务

48、 */void YourTask2( void *pdata )INT8U err;/*在下面添加任务内容 */while( 1 )OSSemPe nd( pLCDSem, 0, &err );LCDC_PANEL_WIDTH-20, LCDC_PANEL_HEIGHT-20,LCDC_PANEL_WIDTH-40, LCDC_PANEL_HEIGHT-40,LCDC_PANEL_WIDTH-60, LCDC_PANEL_HEIGHT-60,LCDC_PANEL_WIDTH-20, LCDC_PANEL_HEIGHT-20,LCDC_PANEL_WIDTH-40, LCDC_PANEL_HEI

49、GHT-40,LCDC_PANEL_WIDTH-60, LCDC_PANEL_HEIGHT-60,MX1_LCDC_DrawEllipse( 20, 20,15, 15, LS_SOLID, FS_TRANS );MX1_LCDC_DrawEllipse( 40, 40,31, 31, LS_SOLID, FS_TRANS );MX1_LCDC_DrawEllipse( 60, 60,47, 47, LS_SOLID, FS_SOLID );OSTimeDlyHMSM( 0, 0, 4, 0 );MX1_LCDC_DrawEllipse( 20, 20,48, 48, LS_SOLID, FS

50、_TRANS );MX1_LCDC_DrawEllipse( 40, 40,48, 48, LS_SOLID, FS_TRANS );MX1_LCDC_DrawEllipse( 60, 60,48, 48, LS_SOLID, FS_SOLID );OSSemPost( pLCDSem );/*初始化后,从这里开始执行C代码*/int _main( void )un sig ned in t paletteLCDC_CMRAM_SIZE; int i;MX1_AITC_I nit(); IRQ_I nit();初始化LCD/*初始化中断控制器*/*初始化中断管理*/MX1_LCDC_I nit(LCDC_PANEL_WIDTH, LCDC_PANEL_HEIGHT,LCDC_INIT_STARTX, LCDC_INIT_STARTY, LCDC_VPW, LCDC_PANEL_CONF, LCDC_BPP );/初始化调色板for( i=0; i16; i+ )palettei = RGB( i, 0, 0 );palettei+16= RGB( 0, i, 0 );palettei+32= RGB( 0, 0, i );palettei+48= RGB( i, i, i );MX1_LCDC_CMRAM_Set( palette )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论