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

📄 usrtask.c

📁 Rabbit 32Bit RTOS源代码
💻 C
字号:
/*********************************************************************
*                   Copyright (c) 2011-2012,李士伟
*                     All rights reserved.
*文 件 名:usrtask.c
*描    述:主用户任务
*当前版本:V1.00
*作    者:李士伟
*创建日期:2012.01.10
**********************************************************************/
#include <lib\print_f.h>
#include <app\usrtask\usrtask.h>
#include <app\thumbtask\thumbtask.h>
#include <app\ledtask\ledtask.h>
#include <app\digtask\digtask.h>
#include <drivers\lpc2103\uart0.h>
#include <drivers\lpc2103\rtc.h>

OS_MSGBOX mbox;

void ShowMemInf(void)
{
    OSMEMInf meminf;
    API_GetMemInf(&meminf);
    print_f("\n\nMem Info:");
    print_f("\nTotal size(bytes):%u", meminf.TotalSize);
    print_f("\nFree size(bytes):%u", meminf.FreeSize);
    print_f("\nFree blocks:%u", meminf.FreeBlks);
    print_f("\nUsing blocks:%u", meminf.UsingBlks);
    print_f("\nUsage:%u%%\n", meminf.Usage);

}
void ShowTime(void)
{
    RTime tm;
    char *weekstr[]={"星期日", "星期一", "星期二",
                     "星期三", "星期四", "星期五", "星期六"};

    RTC_GetTime(&tm);

    print_f("\n%u年%u月%u日,%s,%u:%u:%u",
        tm.year, tm.month, tm.day, weekstr[tm.week], tm.hour, tm.min, tm.sec);

}

void SetTime(INT32U year, INT32U month, INT32U day, INT32U week,
             INT32U hour, INT32U min, INT32U sec)
{
    RTime tm;
    tm.year  = year;
    tm.month = month;
    tm.day   = day;
    tm.week  = week;
    tm.hour  = hour;
    tm.min   = min;
    tm.sec   = sec;
    RTC_SetTime(&tm);
}

/*********************************************************************
*函 数 名:AppMain
*描    述:应用程序主入口函数
*输入参数:pdata:参数指针
*输出参数:无
*返 回 值:无
*注    意:
**********************************************************************/
void AppMain(void *pdata)
{
    INT32U err;
    char *msg;

    pdata = pdata;

    UART0_SetBuf(256, 256);
    UART0_Init(57600, 8, 1, 1);
    API_InitMsgBox(&mbox, NULL);

    API_CreateThumbTask(thumbtask, NULL, 500, 1);
    API_CreateArmTask(ledtask, NULL, 500, 2);
    API_CreateArmTask(digtask, NULL, 500, 3);

    for ( ; ; )
    {
        msg = API_MsgBoxPend(&mbox, 0, &err);
        print_f(msg);
        print_f("\nUserTask is running");
        print_f("\nOSTicks:%d", API_GetTicks());
        print_f("\nCPUUsage:%u%%", API_GetCPUUsage());
        ShowMemInf();
        ShowTime();
    }
}

⌨️ 快捷键说明

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