main.c
上传用户:dsfgsdff
上传日期:2022-07-10
资源大小:319k
文件大小:4k
- #include "config.h"
- #include "stdlib.h"
- #include "led.h"
- #include "SPI.h"
- /********UC/OS模板来自QQ群:8294384内高手之手,鄙人挪用*******/
- /************WWW.MCU666.COM*********************************/
- /******挪用:月亮 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 ***********************************
- **************************************************************/