main.c
上传用户:dsfgsdff
上传日期:2022-07-10
资源大小:319k
文件大小:4k
源码类别:

微处理器开发

开发平台:

C/C++

  1. #include "config.h"
  2. #include "stdlib.h"
  3. #include "led.h"
  4. #include "SPI.h"
  5. /********UC/OS模板来自QQ群:8294384内高手之手,鄙人挪用*******/
  6. /************WWW.MCU666.COM*********************************/
  7. /******挪用:月亮 QQ:228939191 ******************************/
  8. #define TaskStkLengh 64 //定义用户任务0的堆栈长度
  9.  
  10. OS_STK TaskStk0 [TaskStkLengh]; //定义用户任务0的堆栈
  11. OS_STK TaskStk1 [TaskStkLengh]; //定义用户任务1的堆栈
  12. OS_STK TaskStk2 [TaskStkLengh]; //定义用户任务2的堆栈
  13. OS_STK TaskStk3 [TaskStkLengh]; //定义用户任务3的堆栈
  14. OS_STK TaskStk4 [TaskStkLengh]; //定义用户任务4的堆栈
  15. OS_STK TaskStk5 [TaskStkLengh]; //定义用户任务5的堆栈 
  16. void  Task0(void *pdata); //Task0 任务0
  17. void  Task1(void *pdata); //Task1 任务1
  18. void  Task2(void *pdata); //Task2 任务2
  19. void  Task3(void *pdata); //Task3 任务3
  20. void  Task4(void *pdata); //Task4 任务4
  21. void  Task5(void *pdata); //Task5 任务5
  22. OS_EVENT *DispSem;
  23. /****************0`9字码*******************************************/
  24. uint8   const seven_seg[13]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x00,0x40,0x5C};
  25. /******************************************************************/
  26. /**********************主程序**************************************/
  27. /******************************************************************/
  28. int main (void)
  29. {
  30. TargetInit();
  31. SPI_init();   //SPI初始化
  32. IO_Int();    //输出灯与蜂鸣器初始化
  33. OSInit ();
  34. DispSem = OSSemCreate(1);
  35.    OSTaskCreate (Task0,(void *)0, &TaskStk0[TaskStkLengh - 1], 3);  
  36.    OSTaskCreate (Task1,(void *)0, &TaskStk1[TaskStkLengh - 1], 4);
  37.   OSTaskCreate (Task2,(void *)0, &TaskStk2[TaskStkLengh - 1], 5);
  38.    OSTaskCreate (Task3,(void *)0, &TaskStk3[TaskStkLengh - 1], 6);
  39.   OSTaskCreate (Task4,(void *)0, &TaskStk4[TaskStkLengh - 1], 7);
  40.    OSTaskCreate (Task5,(void *)0, &TaskStk5[TaskStkLengh - 1], 8);
  41. OSStart ();
  42. return 0;
  43. }
  44. /*************************************************************
  45.                              Task0 任务0 (P1.8灯亮 灭 )
  46. **************************************************************/
  47. void Task0 (void *pdata)
  48. {
  49. pdata = pdata;
  50. while (1)
  51. {
  52. LedCS0(TRUE);
  53. OSTimeDly(100);
  54. LedCS0(FALSE);
  55. OSTimeDly(100);
  56. }
  57. }
  58. /*************************************************************
  59.                             Task1 任务1 (P1.9灯循环亮 灭 )
  60. **************************************************************/
  61. void Task1(void *pdata)
  62. {
  63. pdata = pdata;
  64. while (1)
  65. {
  66. LedCS1(TRUE);
  67. OSTimeDly(150);
  68. LedCS1(FALSE);
  69. OSTimeDly(150);
  70. }
  71. }
  72. /*************************************************************
  73.                              Task2 任务2 (P1.20灯 循环亮 灭 )
  74. **************************************************************/
  75. void Task2 (void *pdata)
  76. {
  77. pdata = pdata;
  78. while (1)
  79. {
  80. LedCS2(TRUE);
  81. OSTimeDly(200);
  82. LedCS2(FALSE);
  83. OSTimeDly(200);
  84. }
  85. }
  86. /*************************************************************
  87.                              Task3 任务3   (P0.7 蜂鸣器 循环鸣 停 )
  88. **************************************************************/
  89. void Task3 (void *pdata)
  90. {
  91. pdata = pdata;
  92. while (1)
  93. {
  94.   LedCS3(TRUE);
  95. OSTimeDly(1);
  96. LedCS3(FALSE);
  97. OSTimeDly(500);
  98. }
  99. }
  100. /*************************************************************
  101.                              Task4 任务4  (数码管从0~9 循环显示)
  102. **************************************************************/
  103. void Task4 (void *pdata)
  104. {
  105. pdata = pdata;
  106. while (1)
  107. {
  108.   uint8 i;
  109.   for(i=0;i<10;i++)
  110. {
  111.   MSPI_SendData(~seven_seg[i]);
  112. OSTimeDly(200);
  113. }
  114. }
  115. }
  116. /*************************************************************
  117.                              Task5 任务5  (P1.21-P1.25LED灯 循环亮 灭)
  118. **************************************************************/
  119. void Task5(void *pdata)
  120. {
  121. pdata=pdata;
  122. while(1)
  123. {
  124. LedCS4(TRUE);
  125. OSTimeDly(400);
  126. LedCS4(FALSE);
  127. OSTimeDly(400);
  128. }
  129. }
  130. /**************************************************************
  131. *********************** END ***********************************
  132. **************************************************************/