main.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:4k
源码类别:

uCOS

开发平台:

C/C++

  1. // *************************************************
  2. // 这是学ARM9和ADS1.2的一个很好的例程,这个例程简单易懂。
  3. // 这个例程可以用开发板是的LED灯和仿真器来测试硬件的好坏,
  4. // 还可以CACHE对程序运行速度的影响,测试设置FCLK的频率。
  5. // LED test
  6. //2004.10.25
  7. //***************************************************
  8. #include "config.h"
  9. #include <stdlib.h>
  10. //=======================================
  11. #include "app_cfg.h"
  12. #include "Printf.h"
  13. #include "ts.h"
  14. //
  15. #include "includes.h"
  16. #include "gui.h"
  17. #include "math.h"
  18. #include "GUI_Protected.h"
  19. #include "GUIDEMO.H"
  20. //#include "LCD_ConfDefaults.h"
  21. #include "WM.h"
  22. #include "Dialog.h"
  23. #include "LISTBOX.h"
  24. #include "EDIT.h"
  25. #include "SLIDER.h"
  26. #include "FRAMEWIN.h" 
  27. extern unsigned char iphone_pic[];
  28. //=========================================
  29. OS_STK  MainTaskStk[MainTaskStkLengh];
  30. OS_STK Task0Stk [Task0StkLengh];       // Define the Task0 stack  for ts
  31. OS_STK Task1Stk [Task1StkLengh];       // Define the Task1 stack 
  32. OS_STK Task2Stk [Task2StkLengh];       // Define the Task2 stack 
  33. OS_STK Task3Stk [Task3StkLengh]; //define the task3 stack
  34. int rYear, rMonth,rDay,rDayOfWeek,rHour,rMinute,rSecond;
  35. OS_EVENT *Semp;                         //Creat semp
  36. U8 err;
  37. int main(void)
  38. {
  39. //初始化目标板
  40. TargetInit(); 
  41. //初始化uC/OS   
  42.     OSInit ();  
  43.    
  44.     //初始化系统时基
  45.     OSTimeSet(0);
  46.    
  47.     //创建系统初始任务
  48.     OSTaskCreate (MainTask,(void *)0, &MainTaskStk[MainTaskStkLengh - 1], MainTaskPrio);
  49. OSStart ();
  50. return 0;
  51. }
  52. extern void Lcd_ClearScr( U16 c);
  53. void MainTask(void *pdata) //Main Task create taks0 and task1
  54. {
  55.    
  56. #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
  57. OS_CPU_SR  cpu_sr;
  58. #endif
  59. OS_ENTER_CRITICAL();
  60.   
  61. Timer0Init();//initial timer0 for ucos time tick
  62. ISRInit();   //initial interrupt prio or enable or disable
  63. OS_EXIT_CRITICAL();
  64. OSPrintfInit();//use task to print massage to Uart 
  65. OSStatInit();
  66. GUI_Init( );
  67. // OSTaskCreate (Task0,(void *)0, &Task0Stk[Task0StkLengh - 1], Task0Prio);
  68. OSTaskCreate (Task1,(void *)0, &Task1Stk[Task1StkLengh - 1], Task1Prio);
  69. OSTaskCreate (Task2,(void *)0, &Task2Stk[Task2StkLengh - 1], Task2Prio);
  70. OSTaskCreate (Task3,(void *)0, &Task3Stk[Task3StkLengh - 1], Task3Prio);
  71. while(1)
  72.  { 
  73.    OSCtxSwCtr = 0;                                     /* Clear the context switch counter         */
  74.        OSTaskDel( OS_PRIO_SELF );
  75.    
  76.  }
  77. }
  78. void* Task1 (void *pdata) //task for test
  79. {
  80. U16 TestCnt=0;
  81. U16 Version;
  82. BUTTON_Handle hButton = BUTTON_Create(100,100,30,30,10,WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV);
  83. BUTTON_SetText(hButton,"确定");
  84. while (1)
  85. {
  86.     
  87.      OSTimeDly(OS_TICKS_PER_SEC);
  88. }
  89. }
  90. #define RGB(r,g,b)   (unsigned int)( (r << 16) + (g << 8) + b )
  91. #define FROM_BCD(n) ((((n) >> 4) * 10) + ((n) & 0xf))
  92. #define TO_BCD(n) ((((n) / 10) << 4) | ((n) % 10))
  93. void Task2(void *pdata)
  94. {
  95. BUTTON_Handle hButton = BUTTON_Create(100,200,30,30,11,WM_CF_SHOW | WM_CF_STAYONTOP | WM_CF_MEMDEV);
  96. BUTTON_SetText(hButton,"取消");
  97. while(1)
  98. {
  99.   OSTimeDly(OS_TICKS_PER_SEC);
  100. }
  101. }
  102. void Task3(void *pdata)
  103. {
  104. while(1)
  105. {
  106. GUI_Exec();
  107. GUI_X_ExecIdle();
  108. }
  109. }
  110. #if 0
  111. //************************[ Rtc_Init ]*********************************
  112. void Rtc_Init(void)
  113. {
  114. int wYear, wMonth,wDay,wDayOfWeek,wHour,wMinute,wSecond;
  115.     wYear = 2008;
  116.     wMonth = 9;
  117.     wDay = 5;
  118.     wDayOfWeek = 5;
  119.     wHour= 9;
  120.     wMinute = 41;
  121.     wSecond = 30;
  122. rRTCCON = 1 ; //RTC read and write enable
  123. rBCDYEAR = (unsigned char)TO_BCD(wYear%100); //年
  124.     rBCDMON  = (unsigned char)TO_BCD(wMonth); //月
  125.     rBCDDAY  = (unsigned char)TO_BCD(wDay); //日
  126. rBCDDATE = wDayOfWeek+1; //星期
  127. rBCDHOUR = (unsigned char)TO_BCD(wHour); //小时
  128. rBCDMIN  = (unsigned char)TO_BCD(wMinute); //分
  129. rBCDSEC  = (unsigned char)TO_BCD(wSecond); //秒
  130. rRTCCON &= ~1 ; //RTC read and write disable
  131. }
  132. #endif