久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2526|回復: 0
打印 上一主題 下一主題
收起左側

EMWIN燈控實驗源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:517846 發表于 2019-10-27 20:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
簡單燈控實驗

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "ILI93xx.h"
  6. #include "usart.h"         
  7. #include "24cxx.h"
  8. #include "flash.h"
  9. #include "touch.h"
  10. #include "timer.h"
  11. #include "malloc.h"
  12. #include "GUI.h"
  13. #include "ff.h"
  14. #include "MMC_SD.h"
  15. #include "fontupd.h"
  16. #include "exfuns.h"
  17. #include "includes.h"
  18. #include "Button_USE.h"
  19. #include "WM.h"
  20. #include "DIALOG.h"

  21. //任務優先級
  22. #define START_TASK_PRIO                                3
  23. //任務堆棧大小       
  24. #define START_STK_SIZE                                 128
  25. //任務控制塊
  26. OS_TCB StartTaskTCB;
  27. //任務堆棧       
  28. CPU_STK START_TASK_STK[START_STK_SIZE];
  29. //任務函數
  30. void start_task(void *p_arg);

  31. //TOUCH任務
  32. //設置任務優先級
  33. #define TOUCH_TASK_PRIO                                4
  34. //任務堆棧大小
  35. #define TOUCH_STK_SIZE                                128
  36. //任務控制塊
  37. OS_TCB TouchTaskTCB;
  38. //任務堆棧
  39. CPU_STK TOUCH_TASK_STK[TOUCH_STK_SIZE];
  40. //touch任務
  41. void touch_task(void *p_arg);

  42. //LED0任務
  43. //設置任務優先級
  44. #define LED0_TASK_PRIO                                 5
  45. //任務堆棧大小
  46. #define LED0_STK_SIZE                                128
  47. //任務控制塊
  48. OS_TCB Led0TaskTCB;
  49. //任務堆棧
  50. CPU_STK LED0_TASK_STK[LED0_STK_SIZE];
  51. //led0任務
  52. void led0_task(void *p_arg);

  53. //EMWINDEMO任務
  54. //設置任務優先級
  55. #define EMWINDEMO_TASK_PRIO                        6
  56. //任務堆棧大小
  57. #define EMWINDEMO_STK_SIZE                        512
  58. //任務控制塊
  59. OS_TCB EmwindemoTaskTCB;
  60. //任務堆棧
  61. CPU_STK EMWINDEMO_TASK_STK[EMWINDEMO_STK_SIZE];
  62. //emwindemo_task任務
  63. void emwindemo_task(void *p_arg);


  64. int main(void)
  65. {         
  66.         OS_ERR err;
  67.         CPU_SR_ALLOC();
  68.        
  69.         delay_init();                    //延時函數初始化          
  70.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  71.         uart_init(115200);                 //串口初始化為115200
  72.         LED_Init();                            //LED端口初始化
  73.         TFTLCD_Init();                        //LCD初始化       
  74.         KEY_Init();                                 //按鍵初始化
  75.         mem_init();                                //初始化內部內存池

  76.         TP_Init();                                //觸摸屏初始化
  77.        
  78.         OSInit(&err);                        //初始化UCOSIII
  79.         OS_CRITICAL_ENTER();        //進入臨界區
  80.         //創建開始任務
  81.         OSTaskCreate((OS_TCB         * )&StartTaskTCB,                //任務控制塊
  82.                                  (CPU_CHAR        * )"start task",                 //任務名字
  83.                  (OS_TASK_PTR )start_task,                         //任務函數
  84.                  (void                * )0,                                        //傳遞給任務函數的參數
  85.                  (OS_PRIO          )START_TASK_PRIO,     //任務優先級
  86.                  (CPU_STK   * )&START_TASK_STK[0],        //任務堆棧基地址
  87.                  (CPU_STK_SIZE)START_STK_SIZE/10,        //任務堆棧深度限位
  88.                  (CPU_STK_SIZE)START_STK_SIZE,                //任務堆棧大小
  89.                  (OS_MSG_QTY  )0,                                        //任務內部消息隊列能夠接收的最大消息數目,為0時禁止接收消息
  90.                  (OS_TICK          )0,                                        //當使能時間片輪轉時的時間片長度,為0時為默認長度,
  91.                  (void           * )0,                                        //用戶補充的存儲區
  92.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任務選項
  93.                  (OS_ERR         * )&err);                                //存放該函數錯誤時的返回值
  94.         OS_CRITICAL_EXIT();        //退出臨界區         
  95.         OSStart(&err);  //開啟UCOSIII
  96.         while(1);
  97. }

  98. //開始任務函數
  99. void start_task(void *p_arg)
  100. {
  101.         OS_ERR err;
  102.         CPU_SR_ALLOC();
  103.         p_arg = p_arg;

  104.         CPU_Init();
  105. #if OS_CFG_STAT_TASK_EN > 0u
  106.    OSStatTaskCPUUsageInit(&err);          //統計任務               
  107. #endif
  108.        
  109. #ifdef CPU_CFG_INT_DIS_MEAS_EN                //如果使能了測量中斷關閉時間
  110.     CPU_IntDisMeasMaxCurReset();       
  111. #endif

  112. #if        OS_CFG_SCHED_ROUND_ROBIN_EN  //當使用時間片輪轉的時候
  113.          //使能時間片輪轉調度功能,時間片長度為1個系統時鐘節拍,既1*5=5ms
  114.         OSSchedRoundRobinCfg(DEF_ENABLED,1,&err);  
  115. #endif               
  116.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//開啟CRC時鐘
  117.         GUI_Init();                          //STemWin初始化
  118.        
  119.         OS_CRITICAL_ENTER();        //進入臨界區
  120.         //STemWin Demo任務       
  121.         OSTaskCreate((OS_TCB*     )&EmwindemoTaskTCB,               
  122.                                  (CPU_CHAR*   )"Emwindemo task",                
  123.                  (OS_TASK_PTR )emwindemo_task,                        
  124.                  (void*       )0,                                       
  125.                  (OS_PRIO          )EMWINDEMO_TASK_PRIO,     
  126.                  (CPU_STK*    )&EMWINDEMO_TASK_STK[0],       
  127.                  (CPU_STK_SIZE)EMWINDEMO_STK_SIZE/10,       
  128.                  (CPU_STK_SIZE)EMWINDEMO_STK_SIZE,               
  129.                  (OS_MSG_QTY  )0,                                       
  130.                  (OS_TICK          )0,                                         
  131.                  (void*       )0,                                       
  132.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  133.                  (OS_ERR*     )&err);
  134.         //觸摸屏任務
  135.         OSTaskCreate((OS_TCB*     )&TouchTaskTCB,               
  136.                                  (CPU_CHAR*   )"Touch task",                
  137.                  (OS_TASK_PTR )touch_task,                        
  138.                  (void*       )0,                                       
  139.                  (OS_PRIO          )TOUCH_TASK_PRIO,     
  140.                  (CPU_STK*    )&TOUCH_TASK_STK[0],       
  141.                  (CPU_STK_SIZE)TOUCH_STK_SIZE/10,       
  142.                  (CPU_STK_SIZE)TOUCH_STK_SIZE,               
  143.                  (OS_MSG_QTY  )0,                                       
  144.                  (OS_TICK          )0,                                         
  145.                  (void*       )0,                                       
  146.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  147.                  (OS_ERR*     )&err);                         
  148.         //LED0任務
  149.         OSTaskCreate((OS_TCB*     )&Led0TaskTCB,               
  150.                                  (CPU_CHAR*   )"Led0 task",                
  151.                  (OS_TASK_PTR )led0_task,                        
  152.                  (void*       )0,                                       
  153.                  (OS_PRIO          )LED0_TASK_PRIO,     
  154.                  (CPU_STK*    )&LED0_TASK_STK[0],       
  155.                  (CPU_STK_SIZE)LED0_STK_SIZE/10,       
  156.                  (CPU_STK_SIZE)LED0_STK_SIZE,               
  157.                  (OS_MSG_QTY  )0,                                       
  158.                  (OS_TICK          )0,                                         
  159.                  (void*       )0,                                       
  160.                  (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
  161.                  (OS_ERR*     )&err);

  162.         OS_TaskSuspend((OS_TCB*)&StartTaskTCB,&err);                //掛起開始任務                         
  163.         OS_CRITICAL_EXIT();        //退出臨界區
  164. }


  165. //EMWINDEMO任務
  166. void emwindemo_task(void *pdata)
  167. {
  168.         GUI_CURSOR_Show();
  169.         //更換皮膚
  170.         BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
  171.         CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
  172.         DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
  173.         FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
  174.         HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
  175.         MENU_SetDefaultSkin(MENU_SKIN_FLEX);
  176.         MULTIPAGE_SetDefaultSkin(MULTIPAGE_SKIN_FLEX);
  177.         PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
  178.         RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
  179.         SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
  180.         SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
  181.         SPINBOX_SetDefaultSkin(SPINBOX_SKIN_FLEX);
  182.         while(1)
  183.         {
  184.                 Main_task();
  185.         }
  186. }

  187. //TOUCH任務
  188. void touch_task(void *p_arg)
  189. {
  190.         OS_ERR err;
  191.         while(1)
  192.         {
  193.                 GUI_TOUCH_Exec();       
  194.                 OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_PERIODIC,&err);//延時5ms
  195.         }
  196. }

  197. //LED0任務
  198. void led0_task(void *p_arg)
  199. {
  200.         OS_ERR err;
  201.         while(1)
  202.         {
  203.                 LED0 = !LED0;
  204.                 OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_PERIODIC,&err);//延時500ms
  205.         }
  206. }
復制代碼

所有資料51hei提供下載:
EMWIN燈控實驗.7z (1.71 MB, 下載次數: 21)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九色 在线| 综合自拍 | 91视频久久 | 日韩精品久久久久 | 久久99深爱久久99精品 | 成年男女免费视频网站 | 精品一区二区三区在线观看国产 | 99久久日韩精品免费热麻豆美女 | 99re在线视频观看 | 色综合天天综合网国产成人网 | 天天躁日日躁狠狠的躁天龙影院 | 综合欧美亚洲 | 国产高清一区二区三区 | 久久青青 | www.亚洲精品 | 欧美激情久久久久久 | 欧美日韩久 | 国产精品色婷婷久久58 | 日韩中文字幕 | 日韩在线视频观看 | 欧美精品一区二区三区一线天视频 | 免费黄色录像片 | 91在线观看视频 | 神马久久久久久久久久 | 欧美不卡在线 | 亚洲精品一区二区二区 | 国产免费观看一区 | 日韩一二区 | 2019精品手机国产品在线 | 男女久久久 | 国产在线www | 精品国产精品国产偷麻豆 | 欧美日韩a| 五月婷婷婷 | 国产日韩欧美一区二区在线播放 | 国产精品99久久久久久大便 | 麻豆久久久9性大片 | 欧美在线观看网站 | 羞羞网站在线观看 | 盗摄精品av一区二区三区 | 久久精品视频在线观看 |