1-1-1框架
  • 意法半导体的三端双向可控硅

    意法半导体的三端双向可控硅

  • 亿光反射式光电开关芯片ITR1204SR10A-TR

    亿光反射式光电开关芯片ITR1204SR10A-TR

  • 如何提升微波网络分析仪的测量精度?

    如何提升微波网络分析仪的测量精度?

  • 14周年庆-发金币,500名额,每人50金币。学堂课程全场半价

    14周年庆-发金币,500名额,每人50金币。学

  • 发一个TI的6层工业以太网通信主板,原理图和PCB

    发一个TI的6层工业以太网通信主板,原理图

[资料贡献] UCOS任务调度源码   纱望对有些朋友有用

[复制链接]
查看2265 | 回复7 | 2014-11-21 12:34:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
include "sys.h"
#include "delay.h"
#include "led.h"
#include "usart.h"
#include "includes.h"
///////////////////////UCOSII任务设置///////////////////////////////////
//START 任务
//设置任务优先级
#define START_TASK_PRIO                  10 //开始任务的优先级设置为最低
//设置任务堆栈大小
#define START_STK_SIZE                  64
//任务堆栈   
OS_STK START_TASK_STK[START_STK_SIZE];
//任务函数
void start_task(void *pdata);   
               
//LED0任务
//设置任务优先级
#define LED0_TASK_PRIO                   7
//设置任务堆栈大小
#define LED0_STK_SIZE                      64
//任务堆栈   
OS_STK LED0_TASK_STK[LED0_STK_SIZE];
//任务函数
void led0_task(void *pdata);


//LED1任务
//设置任务优先级
#define LED1_TASK_PRIO                   6
//设置任务堆栈大小
#define LED1_STK_SIZE                      64
//任务堆栈
OS_STK LED1_TASK_STK[LED1_STK_SIZE];
//任务函数
void led1_task(void *pdata);

int main(void)
{
    Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
    delay_init(168);            //初始化延时函数
    LED_Init();                    //初始化LED时钟   
    OSInit();                   //初始化UCOSII
     OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//创建起始任务
    OSStart();                       //启动UCOSII
}

      
//开始任务
void start_task(void *pdata)
{
    OS_CPU_SR cpu_sr=0;
    pdata = pdata;
      OS_ENTER_CRITICAL();            //进入临界区(无法被中断打断)   
     OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO);                           
     OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);                        
    OSTaskSuspend(START_TASK_PRIO);    //挂起起始任务.
    OS_EXIT_CRITICAL();                //退出临界区(可以被中断打断)
}

//LED0任务
void led0_task(void *pdata)
{         
    while(1)
    {
        LED0=0;
        delay_ms(80);
        LED0=1;
        delay_ms(920);
    };
}

//LED1任务
void led1_task(void *pdata)
{      
    while(1)
    {
        LED1=0;
        delay_ms(300);
        LED1=1;
        delay_ms(300);
    };
}
回复

使用道具 举报

shuobing | 2014-11-21 13:05:43 | 显示全部楼层
广告位出租,价格可以商量。
回复

使用道具 举报

为自己带盐 | 2014-11-21 14:35:33 | 显示全部楼层
回复

使用道具 举报

shenzhoudadi | 2014-11-21 21:50:42 | 显示全部楼层
回复

使用道具 举报

ftnt1314 | 2018-12-5 08:40:41 | 显示全部楼层
回复

使用道具 举报

天涯哥 | 2019-5-1 22:27:58 | 显示全部楼层
回复

使用道具 举报

天涯哥 | 2019-5-11 21:12:06 | 显示全部楼层
回复

使用道具 举报

haohao96 | 2022-7-16 10:39:31 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则