⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iar-

📁 IAR_example_EasyARM8962.zip
💻
字号:
/****************************************Copyright (c)****************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name:               Main.c
** Last modified Date:      2007.12.12
** Last Version:            v1.0
** Description:             The main function example template  主函数例子模版
** 
**--------------------------------------------------------------------------------------------------------
** Created By:              Steven Zhou 周绍刚
** Created date:            2007.12.12
** Version:                 v1.0
** Descriptions:            The original version 初始版本
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua 
** Modified date:           2008.01.02   
** Version:                 v1.1
** Description:             The second version 第二版 
**
*********************************************************************************************************/
#include <includes.h>

/*********************************************************************************************************
  CONSTANTS 常量
*********************************************************************************************************/

/*********************************************************************************************************
  VARIABLES 变量
*********************************************************************************************************/
static  OS_STK   Task_StartStk[TASK_START_STK_SIZE];                    /*  The stack of start task     */
                                                                        /*  启动任务的堆栈              */
static  OS_STK 	 Task_AStk[TASK_A_STK_SIZE];
static  OS_STK 	 Task_BStk[TASK_B_STK_SIZE];

OS_EVENT *DispMsg;

/*********************************************************************************************************
   FUNCTION PROTOTYPES 函数声明
*********************************************************************************************************/
static  void     taskStart               (void  *parg);                 /*  The start task  启动任务    */
static  void     taskA                   (void  *parg);
static  void     taskB                   (void  *parg);
static  void     taskCreate              (void);

/*********************************************************************************************************
** Function name:           main	   
** Descriptions:            uC/OS移植模板	
** input parameters:        无
** output parameters:       无      
** Returned value:          无 
** Created by:		    Steven Zhou 周绍刚
** Created Date:	    2007.01.18
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua
** Modified date:           2007.12.21
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int main (void)
{
    intDisAll();                                                        /* Disable all the interrupts   */
                                                                        /* 关闭所有中断                 */

    OSInit();                                                           /*  Initialize the kernel of uC */
                                                                        /*  OS-II 初始化uC/OS-II的内核  */

    OSTaskCreate ( taskStart,                                          
		   (void *)0, 
		   & Task_StartStk[TASK_START_STK_SIZE-1], 
		   TASK_START_PRIO );                                           /*  Initialize the start task   */
                                                                        /*  初始化启动任务              */  
    OSStart();                                                          /*  Start uC/OS-II 启动uC/OS-II */
    return(0) ;
}

/*********************************************************************************************************
** Function name:           Task_Start	   
** Descriptions:            Start task	
** input parameters:        *p_arg
** output parameters:       无      
** Returned value:          无 
** Created by:		    Steven Zhou 周绍刚
** Created Date:	    2007.01.18
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua
** Modified date:           2007.12.21
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
static  void  taskStart (void  *parg)
{
    (void)parg;

    targetInit();                                                       /*  Initialize the target's MCU */
                                                                        /*  初始化目标单片机            */

    #if OS_TASK_STAT_EN > 0
        OSStatInit();                                                   /*  Enable statistics           */
                                                                        /*  使能统计功能                */
    #endif

	ledToggle(0xff);
	OSTimeDly(OS_TICKS_PER_SEC / 2);
	ledToggle(0xff);
	OSTimeDly(OS_TICKS_PER_SEC / 2);
	ledToggle(0xff);    
    /*
     *  Create the other tasks here. 在这里创建其他任务
     */
    taskCreate();
	while (1) {	                             
        OSTaskSuspend(OS_PRIO_SELF);                                    /*  The start task can be pended*/
                                                                        /*  here.启动任务可在这里挂起   */
    }
}

/*********************************************************************************************************
  The other tasks 其他任务
*********************************************************************************************************/

/*********************************************************************************************************
** Function name:           taskCreate	   
** Descriptions:            CREATE APPLICATION TASKS	
** input parameters:        无
** output parameters:       无      
** Returned value:          无 
** Created by:		    maliang
** Created Date:	    2007.04.17
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua
** Modified date:           2007.12.21
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
static  void  taskCreate (void)
{
    DispMsg = OSMboxCreate((void*)0);
    OSTaskCreate (taskA, (void *)0, 
				  &Task_AStk[TASK_A_STK_SIZE-1], TASK_A_PRIO);

    OSTaskCreate (taskB, (void *)0, 
				  &Task_BStk[TASK_B_STK_SIZE-1], TASK_B_PRIO);
}

/*********************************************************************************************************
** Function name:           taskA	   
** Descriptions:            The tasks A	
** input parameters:        *parg
** output parameters:       无      
** Returned value:          无 
** Created by:		    maliang
** Created Date:	    2007.04.17
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua
** Modified date:           2007.12.21
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
static void taskA(void  *parg)
{
    INT8U ucErr;
    INT8U *ucMsg;
    (void)parg;
    while (1) {    
        ucMsg = OSMboxPend(DispMsg, 0, &ucErr); 
        ledToggle(*ucMsg);
    }
}

/*********************************************************************************************************
** Function name:           taskB	   
** Descriptions:            The tasks B	
** input parameters:        *parg
** output parameters:       无      
** Returned value:          无 
** Created by:		    maliang
** Created Date:	    2007.04.17
**--------------------------------------------------------------------------------------------------------
** Modified by:             Kang qinhua
** Modified date:           2007.12.21
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
static void taskB(void  *parg)
{
    INT8U ucKey, ucMsg;
    (void)parg;

    while (1) {
        ucKey = keyRead( );
	while (keyRead( ) != 0xFF) {                                        /*  等待按键释放,消除按键抖动  */
            ;
        }
        switch (ucKey) {        
        case 0xFE:                                                      /*  KEY1按下                    */
            ucMsg = 1;
            OSMboxPost(DispMsg, (void *)&ucMsg);		                /*  发送信号量                  */
            break;
            
        case 0xFD:                                                      /*  KEY2按下                    */
            ucMsg = 2;
            OSMboxPost(DispMsg, (void *)&ucMsg);		                /*  发送信号量                  */
            break;
        case 0xFB:                                                      /*  KEY3按下                    */                                   
            ucMsg = 3;
            OSMboxPost(DispMsg, (void *)&ucMsg);		                /*  发送信号量                  */    
            break;
        case 0xF7:                                                      /*  KEY4按下                    */
            ucMsg = 4;
            OSMboxPost(DispMsg, (void *)&ucMsg);		                /*  发送信号量                  */
           break;            
        default:
            break;
        }
        OSTimeDly(2);
    }
} 

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -