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

下载本文档

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

文档简介

/主函数模板#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */while( 1 )/* 初始化后,从这里开始执行C代码 */int _main( void )MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/LED闪烁/led.c#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includeled.h/* Led驱动接口函数的说明头文件 */#includemx1_gpio.h/* 包含与通用IO口相关的头文件*/#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includemx1_uart.h/* 包含与串口相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_LEDDEMO256/* 分配给任务的堆栈大小 */#definePRIO_LEDDEMO3/* 任务的优先级 */OS_STK StkLedDemoSTK_SIZE_LEDDEMO;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void LedDemo( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */while( 1 )LED_On( LED3 );/* 依次点亮LED*/OSTimeDlyHMSM( 0, 0, 0, 500 );/* 延时500毫秒*/LED_On( LED4 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED4 );/* 依次熄灭LED*/OSTimeDlyHMSM( 0, 0, 0, 500 ); LED_Off( LED3 );OSTimeDlyHMSM( 0, 0, 0, 500 );/* 初始化后,从这里开始执行C代码 */int _main( void )MX1_AITC_Init();/* 初始化中断控制器 */MX1_GPIO_Init(MX1_GPIO_PC);/* 初始化通用IO端口C */MX1_UART_Init(COM1);/* 初始化串口1 */IRQ_Init();/* 初始化中断管理 */LED_Init( LED3 );/* 初始化LED */LED_Init( LED4 );MX1_UART_PutString(COM1,nrnruC/OS-II is initializing.nr,33);OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( LedDemo, 0, &StkLedDemoSTK_SIZE_LEDDEMO-1, PRIO_LEDDEMO );MX1_UART_PutString(COM1,Running.nr,12);OSStart();/* 开始调度 */return 0;/LED闪烁#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includeled.h/* Led驱动接口函数的说明头文件 */#includemx1_gpio.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */LED_Init( LED3 );/* 初始化 */LED_Init( LED5 );LED_Init( 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_On( LED7 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED7 );OSTimeDlyHMSM( 0, 0, 0, 500 );/* 初始化后,从这里开始执行C代码 */int _main( void )MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/按钮开关#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includeled.h#includeswitch.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */LED_Init( LED3 );LED_Init( LED4 );LED_Init( LED5 );LED_Init( LED6 );LED_Init( LED7 );LED_Init( LED8 );LED_Init( LED9 );LED_Init( LED10 );SWITCH_Init( SW2 );/* 初始化开关 */SWITCH_Init( SW3 );SWITCH_Init( SW4 );SWITCH_Init( SW5 );SWITCH_Init( SW6 );SWITCH_Init( SW7 );SWITCH_Init( SW8 );SWITCH_Init( SW9 );while( 1 )if( SWITCH_IS_ON( SW2 ) )LED_On( LED3 );elseLED_Off( LED3 );/if( SWITCH_IS_ON( SW3 ) )LED_On( LED4 );elseLED_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 );elseLED_Off( LED9 );/if( SWITCH_IS_ON( SW9 ) )LED_On( LED10 );elseLED_Off( LED10 );/* 初始化后,从这里开始执行C代码 */int _main( void )MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/主板I/O LED#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includemx1_gpio.h#includeled.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */LED_Init( LED3 );/* LED的初始化,需要调用GPIO的接口设置函数 */LED_Init( LED4 );LED_Init( LED5 );LED_Init( LED6 );LED_Init( LED7 );LED_Init( LED8 );LED_Init( LED9 );LED_Init( LED10 );while( 1 )LED_On( 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 );OSTimeDlyHMSM( 0, 0, 0, 500 );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 );OSTimeDlyHMSM( 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_Init( MX1_GPIO_PC );MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/串口通信#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includemx1_gpio.h#includemx1_uart.h#include/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )chartmp;IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */MX1_UART_Init( COM1 );MX1_UART_PutString( COM1, Input a Char:, strlen(Input a Char:) );while( 1 )MX1_UART_GetChar( COM1, &tmp );/* 显示输入的字符 */MX1_UART_PutChar( COM1, tmp );/* 初始化后,从这里开始执行C代码 */int _main( void )MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/AD转换/misc.c adc0809.c#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includemx1_gpio.h#includemx1_uart.h#includeadc0809.h#includemisc.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )char tmp16;IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */ADC0809_Init();while( 1 )/* 将电压值放大倍,通过串口显示 */MX1_UART_PutString( COM1, tmp, IntToStr(500*ADC0809_READ_CHANNEL( 4 )/256, tmp, 16) );MX1_UART_PutChar( COM1, );OSTimeDlyHMSM( 0, 0, 1, 0 );/* 初始化后,从这里开始执行C代码 */int _main( void )MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */MX1_UART_Init( COM1 );OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/LCD#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includemx1_gpio.h#includemisc.h#includemx1_lcdc.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK256/* 分配给任务的堆栈大小 */#definePRIO_TASK3/* 任务的优先级 */OS_STK StkTaskSTK_SIZE_TASK;/* 为任务分配堆栈空间 */* 此函数定义了一个任务 */void YourTask( void *pdata )int i;IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */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 );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( 0, 0, 1, 0 );/* 初始化后,从这里开始执行C代码 */int _main( void )unsigned int paletteLCDC_CMRAM_SIZE;/#defineLCDC_CMRAM_SIZE256int i;MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */OSInit();/* 初始化uC/OS-II内核数据结构 */初始化LCDMX1_LCDC_Init(LCDC_PANEL_WIDTH,/屏幕宽 320 LCDC_PANEL_HEIGHT, /屏幕高 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 );/* 建立一个任务 */OSTaskCreate( YourTask, 0, &StkTaskSTK_SIZE_TASK-1, PRIO_TASK );OSStart();/* 开始调度 */return 0;/多任务#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includeled.h/* Led驱动接口函数的说明头文件 */#includemx1_gpio.h#includemisc.h#includemx1_lcdc.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK1256/* 分配给任务的堆栈大小 */#defineSTK_SIZE_TASK2256#defineSTK_SIZE_TASK3256#definePRIO_TASK13/* 任务的优先级 */#definePRIO_TASK24#definePRIO_TASK35OS_STK StkTask1STK_SIZE_TASK1;/* 为任务分配堆栈空间 */OS_STK StkTask2STK_SIZE_TASK2;OS_STK StkTask3STK_SIZE_TASK3;/* 此函数定义了一个任务 */void YourTask1( void *pdata )IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */LED_Init( LED3 );/* 初始化 */LED_Init( LED4 );LED_Init( LED5 );LED_Init( LED6 );while( 1 )LED_On( 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 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED5 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_On( LED6 );OSTimeDlyHMSM( 0, 0, 0, 500 );LED_Off( LED6 );OSTimeDlyHMSM( 0, 0, 0, 500 );/* 此函数定义了一个任务 */void YourTask2( void *pdata )/* 在下面添加任务内容 */LED_Init( LED7 );/* 初始化 */LED_Init( LED8 );LED_Init( LED9 );LED_Init( LED10 );while( 1 )LED_On( LED7 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_On( LED8 );OSTimeDlyHMSM( 0, 0, 0, 200 );LED_On( LED9 );OSTimeDlyHMSM( 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 )int i;IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */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 );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( 0, 0, 1, 0 );/* 初始化后,从这里开始执行C代码 */int _main( void )int i;unsigned int paletteLCDC_CMRAM_SIZE;MX1_AITC_Init();/* 初始化中断控制器 */IRQ_Init();/* 初始化中断管理 */初始化LCDMX1_LCDC_Init(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 );OSInit();/* 初始化uC/OS-II内核数据结构 */* 建立任务 */OSTaskCreate( YourTask1, 0, &StkTask1STK_SIZE_TASK1-1, PRIO_TASK1 );OSTaskCreate( YourTask2, 0, &StkTask2STK_SIZE_TASK2-1, PRIO_TASK2 );OSTaskCreate( YourTask3, 0, &StkTask3STK_SIZE_TASK3-1, PRIO_TASK3 );OSStart();/* 开始调度 */return 0;/信号量#includeINCLUDES.H/* 包含与uC/OS-II相关的系统调用的头文件 */#includemx1_aitc.h/* 包含与中断控制器相关的头文件 */#includeIRQ.h/* 包含与中断管理相关的头文件 */#includemx1_gpio.h#includemisc.h#includemx1_lcdc.h/* 用于时钟中断 */extern void OSStartTimeTick( void );extern void OSTickISR( void );#defineSTK_SIZE_TASK1256/* 分配给任务的堆栈大小 */#defineSTK_SIZE_TASK2256#definePRIO_TASK13/* 任务的优先级 */#definePRIO_TASK24OS_STK StkTask1STK_SIZE_TASK1;/* 为任务分配堆栈空间 */OS_STK StkTask2STK_SIZE_TASK2;OS_EVENT*pLCDSem;/* 用于LCD的信号量 */* 此函数定义了一个任务 */void YourTask1( void *pdata )INT8U err;IRQ_Register( OSTickISR, TIMER1_INT );/* 开启uC/OS-II的时钟中断(必须在第一个运行的任务里进行) */OSStartTimeTick();/* 在下面添加任务内容 */MX1_LCDC_DrawRect( 0, 0, LCDC_PANEL_WIDTH-1, LCDC_PANEL_HEIGHT-1, 48, 48, LS_SOLID, FS_SOLID );while( 1 )OSSemPend( pLCDSem, 0, &err );MX1_LCDC_DrawRect( 20, 20, LCDC_PANEL_WIDTH-20, LCDC_PANEL_HEIGHT-20, 15, 15, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect( 40, 40, LCDC_PANEL_WIDTH-40, LCDC_PANEL_HEIGHT-40, 31, 31, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect( 60, 60, LCDC_PANEL_WIDTH-60, LCDC_PANEL_HEIGHT-60, 47, 47, LS_SOLID, FS_SOLID );OSTimeDlyHMSM( 0, 0, 4, 0 );MX1_LCDC_DrawRect( 20, 20, LCDC_PANEL_WIDTH-20, LCDC_PANEL_HEIGHT-20, 48, 48, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect( 40, 40, LCDC_PANEL_WIDTH-40, LCDC_PANEL_HEIGHT-40, 48, 48, LS_SOLID, FS_TRANS );MX1_LCDC_DrawRect( 60, 60, LCDC_PANEL_WIDTH-60, LCDC_PANEL_HEIGHT-60, 48, 48, LS_SOLID, FS_SOLID );OSSemPost( pLCDSem );/* 此函数定义了一个任务 */void YourTask2( void *pdata )INT8U err;/* 在下面添加任务内容 */while( 1 )OSSemPend( pLCDSem, 0, &err );MX1_LCDC_DrawEllipse( 20, 20, LCDC_PANEL_WIDTH-20, LCDC_PANEL_HEIGHT-20, 15, 15, LS_SOLID, FS_TRANS );MX1_LCDC_DrawEllipse( 40, 40, LCDC_PANEL_WIDTH-40, LCDC_PANEL_HEIGHT-40, 31, 31, LS_SOLID, FS_TRANS );MX1_LCDC_DrawEllipse( 60, 60, LCDC_PANEL_WIDTH-60, LCDC_PANEL_HEIGHT-60, 47, 47, LS_SOLID, FS_SOLID );OSTimeDlyHMSM( 0, 0, 4, 0 );MX1_LCDC_DrawEllipse( 20, 20, LCDC_PANEL_WIDTH-20, LCDC_PANEL_HEIGHT-20, 48, 48, LS_SOLID, FS_TRANS );MX1_LCDC_DrawEllipse( 40, 40, LCDC_PANEL_W

温馨提示

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

评论

0/150

提交评论