📄 main.c
字号:
#include "config.h"
#include "stdlib.h"
#include "led.h"
#include "SPI.h"
/********UC/OS模板来自高手之手,鄙人挪用*********************/
/*************************M*********************************/
/******挪用:月亮 QQ:228939191 ******************************/
#define TaskStkLengh 64 //定义用户任务0的堆栈长度
OS_STK TaskStk0 [TaskStkLengh]; //定义用户任务0的堆栈
OS_STK TaskStk1 [TaskStkLengh]; //定义用户任务1的堆栈
OS_STK TaskStk2 [TaskStkLengh]; //定义用户任务2的堆栈
OS_STK TaskStk3 [TaskStkLengh]; //定义用户任务3的堆栈
OS_STK TaskStk4 [TaskStkLengh]; //定义用户任务4的堆栈
OS_STK TaskStk5 [TaskStkLengh]; //定义用户任务5的堆栈
void Task0(void *pdata); //Task0 任务0
void Task1(void *pdata); //Task1 任务1
void Task2(void *pdata); //Task2 任务2
void Task3(void *pdata); //Task3 任务3
void Task4(void *pdata); //Task4 任务4
void Task5(void *pdata); //Task5 任务5
OS_EVENT *DispSem;
/****************0`9字码*******************************************/
uint8 const seven_seg[13]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x00,0x40,0x5C};
/******************************************************************/
/**********************主程序**************************************/
/******************************************************************/
int main (void)
{
TargetInit();
SPI_init(); //SPI初始化
IO_Int(); //输出灯与蜂鸣器初始化
OSInit ();
DispSem = OSSemCreate(1);
OSTaskCreate (Task0,(void *)0, &TaskStk0[TaskStkLengh - 1], 3);
OSTaskCreate (Task1,(void *)0, &TaskStk1[TaskStkLengh - 1], 4);
OSTaskCreate (Task2,(void *)0, &TaskStk2[TaskStkLengh - 1], 5);
OSTaskCreate (Task3,(void *)0, &TaskStk3[TaskStkLengh - 1], 6);
OSTaskCreate (Task4,(void *)0, &TaskStk4[TaskStkLengh - 1], 7);
OSTaskCreate (Task5,(void *)0, &TaskStk5[TaskStkLengh - 1], 8);
OSStart ();
return 0;
}
/*************************************************************
Task0 任务0 (P1.8灯亮 灭 )
**************************************************************/
void Task0 (void *pdata)
{
pdata = pdata;
while (1)
{
LedCS0(TRUE);
OSTimeDly(100);
LedCS0(FALSE);
OSTimeDly(100);
}
}
/*************************************************************
Task1 任务1 (P1.9灯循环亮 灭 )
**************************************************************/
void Task1(void *pdata)
{
pdata = pdata;
while (1)
{
LedCS1(TRUE);
OSTimeDly(150);
LedCS1(FALSE);
OSTimeDly(150);
}
}
/*************************************************************
Task2 任务2 (P1.20灯 循环亮 灭 )
**************************************************************/
void Task2 (void *pdata)
{
pdata = pdata;
while (1)
{
LedCS2(TRUE);
OSTimeDly(200);
LedCS2(FALSE);
OSTimeDly(200);
}
}
/*************************************************************
Task3 任务3 (P0.7 蜂鸣器 循环鸣 停 )
**************************************************************/
void Task3 (void *pdata)
{
pdata = pdata;
while (1)
{
LedCS3(TRUE);
OSTimeDly(1);
LedCS3(FALSE);
OSTimeDly(500);
}
}
/*************************************************************
Task4 任务4 (数码管从0~9 循环显示)
**************************************************************/
void Task4 (void *pdata)
{
pdata = pdata;
while (1)
{
uint8 i;
for(i=0;i<10;i++)
{
MSPI_SendData(~seven_seg[i]);
OSTimeDly(200);
}
}
}
/*************************************************************
Task5 任务5 (P1.21-P1.25LED灯 循环亮 灭)
**************************************************************/
void Task5(void *pdata)
{
pdata=pdata;
while(1)
{
LedCS4(TRUE);
OSTimeDly(400);
LedCS4(FALSE);
OSTimeDly(400);
}
}
/**************************************************************
*********************** END ***********************************
**************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -