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

📄 main.c

📁 UCOS-2.rar
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "stdlib.h"

#define	 TaskStkLengh	64			      //定义用户任务0的堆栈长度

uint8  tab1[9]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
uint8  tab2[9]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
 
OS_STK	TaskStk [TaskStkLengh];		      //定义用户任务0的堆栈
OS_STK	TaskPJStk [TaskStkLengh];         //定义用户任务0的堆栈
OS_STK	TaskKEY1Stk [TaskStkLengh];	      //定义用户任务0的堆栈

uint32  BJ=5;

void 	Task0(void *pdata);			      //Task0 任务0
void 	TaskPJ(void *pdata);		      //PJ任务
void 	TaskKEY1(void *pdata);		      //KEY1任务

int main (void)
{
	OSInit ();																								
	OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);		
	OSStart ();
	return 0;															
}
//uint8   key(void);			              //判断按键操作
//{
    
/*********************************************************************************************************
**                            Task0 任务0
********************************************************************************************************/

void Task0	(void *pdata)
{
	pdata = pdata;
	TargetInit ();
	PINSEL2= 0x00000000; 
	IO1DIR = 0xfcffffff;
	PINSEL1= 0x00000000;                                         
    IO0DIR = 0xffffffff;
    OSTaskCreate (TaskPJ,(void *)0, &TaskPJStk[TaskStkLengh - 1], 3);	
    OSTaskCreate (TaskKEY1,(void *)0, &TaskKEY1Stk[TaskStkLengh - 1], 4);	                               
	while (1)
	{
		OSTimeDly(10);
	}
}
   
/*********************************************************************************************************
**                                           TaskPJ
                                     等待消息,并改变PWM占空比
********************************************************************************************************/

void TaskPJ(void *pdata)
{
 uint8  x,i;
 pdata = pdata;
 IO0SET=  0x90000000;                                      
 OSTimeDlyHMSM(0,0,0,BJ);   
 while(1)
  { 
    
    for(x=0;x<25;x++)
    { 
      for(i=0;i<8;i++)
      { 
        if(((i+1)%2)==1)
          IO0CLR = ((tab1[i]^tab1[i+1])&0x0000000f)<<28;
        else
          IO0SET = ((tab1[i]^tab1[i+1])&0x0000000f)<<28;
      OSTimeDlyHMSM(0,0,0,BJ);
      }
      
    }
      /*IO0CLR=  0xf0000000;  
      IO0SET=  0x90000000;
      OSTimeDlyHMSM(0,0,0,BJ);
    for(x=0;x<25;x++)  
    { 
      for(i=0;i<8;i++)
      { 
        if(((i+1)%2)==1)
          IO0CLR = ((tab2[i]^tab2[i+1])&0x0000000f)<<28;
        else
          IO0SET = ((tab2[i]^tab2[i+1])&0x0000000f)<<28;
       OSTimeDlyHMSM(0,0,0,BJ);
      }
    }*/
  }
	
}
	
/*********************************************************************************************************
**                                           TaskKEY1
                                     查询按键,向TaskPWM发送改变后的消息
********************************************************************************************************/
	
void TaskKEY1(void *pdata)
{

	pdata = pdata;	
	
	while(1)
	{
      OSTimeDly(OS_TICKS_PER_SEC/50);
      if((IO1PIN&0x03000000)==0x03000000)
      {
         continue;
      
      }
      OSTimeDly(OS_TICKS_PER_SEC/50);
       if((IO1PIN&0x03000000)==0x03000000)
      {
         continue;
      
      }
        if((IO1PIN&0x03000000)==0x01000000)
        {
          BJ=BJ+1;
          if( BJ>=50)BJ=50;
        } 
        if((IO1PIN&0x03000000)==0x02000000)
        {
          BJ=BJ-1;
          if( BJ<=5)BJ=5;
        }   
          
    // while((IO1PIN&0x03000000)!=0x03000000)
      //{
        //OSTimeDly(OS_TICKS_PER_SEC/50);
      
      //}
   }
	  
}	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

⌨️ 快捷键说明

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