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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2421|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

飛思卡爾16位單片機(jī)+UCOSII串口發(fā)送XDP512源程序 兩個(gè)串口同時(shí)發(fā)送

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:415144 發(fā)表于 2018-10-25 13:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
Freescale MC9S12XDP512雙核處理器的串口程序,帶操作系統(tǒng)UCOSII。有需要的可以下載。

單片機(jī)源程序如下:
  1. #include "includes.h"
  2. extern word Period[8],Duty[8];
  3. #define  TASK_STK_SIZE                  128       /* static size     */
  4. OS_STK   TaskStartStk[TASK_STK_SIZE];       /*定義任務(wù)的堆棧空間*/
  5. OS_STK   TaskStartStkA[TASK_STK_SIZE];      /*定義任務(wù)A的堆棧空間*/
  6. OS_STK   TaskStartStkB[TASK_STK_SIZE];      /*定義任務(wù)B的堆棧空間*/
  7. OS_STK   TaskStartStkC[TASK_STK_SIZE];      /*定義任務(wù)C的堆棧空間*/
  8. OS_STK   TaskStartStkD[TASK_STK_SIZE];      /*定義任務(wù)D的堆棧空間*/
  9. OS_STK   TaskStartStkE[TASK_STK_SIZE];      /*定義任務(wù)D的堆棧空間*/
  10. OS_STK   TaskStartStkF[TASK_STK_SIZE];      /*定義任務(wù)D的堆棧空間*/
  11. void   TaskStart(void *data);
  12. void   TaskStartA(void *data);              /*聲明任務(wù)A的函數(shù)原型*/
  13. void   TaskStartB(void *data);              /*聲明任務(wù)B的函數(shù)原型*/     
  14. void   TaskStartC (void *pdata);
  15. void   TaskStartD (void *pdata);
  16. void   TaskStartE (void *pdata);
  17. void   TaskStartF (void *pdata);
  18. void   DATA_Init();

  19. #define ROUTE_INTERRUPT(vec_adr, cfdata)                \
  20.   INT_CFADDR= (vec_adr) & 0xF0;                         \
  21.   INT_CFDATA_ARR[((vec_adr) & 0x0F) >> 1]= (cfdata)
  22.          
  23. static void SetupXGATE(void) {
  24.   XGVBR= (unsigned int)(void*__far)(XGATE_VectorTable - XGATE_VECTOR_OFFSET);

  25.   ROUTE_INTERRUPT(TIMER_OVERFLOW, 0x86); /* RQST=1 and PRIO=1 */
  26.   ROUTE_INTERRUPT(CAPTURE_CH0, 0x87);
  27.   ROUTE_INTERRUPT(CAPTURE_CH1, 0x87);
  28.   ROUTE_INTERRUPT(CAPTURE_CH2, 0x87);
  29.   ROUTE_INTERRUPT(CAPTURE_CH3, 0x87);
  30.   ROUTE_INTERRUPT(CAPTURE_CH4, 0x87);
  31.   ROUTE_INTERRUPT(CAPTURE_CH5, 0x87);
  32.   ROUTE_INTERRUPT(CAPTURE_CH6, 0x87);
  33.   ROUTE_INTERRUPT(CAPTURE_CH7, 0x87);

  34.   ROUTE_INTERRUPT(ATD0, 0x81);
  35.   ROUTE_INTERRUPT(ATD1, 0x81);


  36.   ROUTE_INTERRUPT(SPI0, 0x84);
  37.   ROUTE_INTERRUPT(SPI1, 0x84);
  38.   ROUTE_INTERRUPT(RTI, 0x85);
  39.   ROUTE_INTERRUPT(MODULUS_UNDERFLOW, 0x82);
  40.   XGMCTL= 0xFBC1; /* XGE | XGFRZ | XGIE */
  41. }



  42. void  main (void)
  43. {
  44.   
  45.   DisableInterrupts;
  46.   DATA_Init();
  47.   MCU_Init();
  48.   SetupXGATE();
  49.         OSInit();         /* initial UCOS-II 系統(tǒng)初始化函數(shù)*/

  50.   OSTaskCreate(TaskStart , (void *)0, &TaskStartStk[TASK_STK_SIZE - 1],  8);                                         
  51.         OSTaskCreate(TaskStartA, (void *)0, &TaskStartStkA[TASK_STK_SIZE - 1], 3);
  52.         OSTaskCreate(TaskStartB, (void *)0, &TaskStartStkB[TASK_STK_SIZE - 1], 4);
  53.         OSTaskCreate(TaskStartC, (void *)0, &TaskStartStkC[TASK_STK_SIZE - 1], 5);
  54.         OSTaskCreate(TaskStartD, (void *)0, &TaskStartStkD[TASK_STK_SIZE - 1], 6);
  55.         OSTaskCreate(TaskStartE, (void *)0, &TaskStartStkE[TASK_STK_SIZE - 1], 7);
  56.         OSTaskCreate(TaskStartF, (void *)0, &TaskStartStkF[TASK_STK_SIZE - 1], 9);
  57.        
  58.         EnableInterrupts;
  59.                     
  60.         OSStart();        /* 開始多任務(wù)調(diào)度!該函數(shù)永遠(yuǎn)不會(huì)返回*/                                    
  61. }

  62.                                        
  63. void TaskStart(void *pdata)
  64. {                                               
  65.   volatile static byte yy = 0;
  66.   pdata  = pdata;                 
  67.   

  68.   //RTICTL = 0xBF;       /*160000 * /16MHz=10Ms*/
  69.   RTICTL = 0xAF;       /*80000 * /8MHz=10Ms*/
  70.         CRGINT_RTIE = 1;       /*Enabe Interrupt*/
  71.        
  72.         for(;;)
  73.         {
  74.          watchdog_clr();
  75.          //display_ad();
  76.     //=======================================================         
  77.     if(test>0)
  78.      {
  79.       if(test>1)
  80.        {  
  81.         induction_switch_test();
  82.        }
  83.       /*else
  84.        {
  85.         shift_sensor_test();
  86.        } */
  87.      }
  88.     //yys003();
  89.     //=======================================================         
  90.              OSTimeDly(80);       /*讓運(yùn)行中的任務(wù)進(jìn)入延時(shí)等待10*20=200ms*/
  91.             }
  92.           
  93. }

  94. /*測試數(shù)據(jù)的初始化---------------------*/
  95. void DATA_Init(){

  96.   
  97.   
  98. }


  99. int key5,key4,key4,key3,key2,key1,key0;
  100. int ta,tb,tc,td,te,tf;
  101. int flash,f,onoff_flag;


  102. /*定義任務(wù)A--------------------等待測試開始信號(hào)*/
  103. void  TaskStartA (void *pdata)
  104. {
  105.   
  106.         pdata  = pdata;                 
  107.   
  108.         for(;;)
  109.         {
  110.         watchdog_clr();

  111.         DDRA=0XFF;

  112.         ta++;
  113.         OSTimeDly(1);   /*讓運(yùn)行中的任務(wù)進(jìn)入等待狀態(tài)655300ms*/
  114.         }

  115. }
  116. int err;
  117. /*定義任務(wù)B-----------比較模塊的通道參數(shù)等,*/
  118. void  TaskStartB (void *pdata)
  119. {
  120.         pdata  = pdata;

  121.         for(;;)
  122.         {
  123.         watchdog_clr();   
  124.               
  125.         /*if(tb==2)
  126.         {
  127.             while(1)
  128.             {
  129.                 PORTA=0;
  130.                 if(PORTA_PA0==0) err=0; else
  131.                 {
  132.                     err=1;
  133.                     while(1);
  134.                 }
  135.                 PORTA=0xFF;
  136.                 if(PORTA_PA0==1) err=0; else
  137.                 {
  138.                     err=1;
  139.                     while(1);
  140.                 }
  141.                
  142.             }
  143.             
  144.         }*/
  145.         tb++;      
  146.             OSTimeDly(3);   /*讓運(yùn)行中的任務(wù)進(jìn)入等待狀態(tài)200ms*/
  147.         }
  148. }




  149. /*定義任務(wù)C-----------獲取待測板數(shù)據(jù)并比較測試結(jié)果*/
  150. void  TaskStartC (void *pdata)
  151. {  
  152.         pdata  = pdata;       
  153.        
  154.         for(;;)
  155.         {
  156.         watchdog_clr();


  157.         tc++;
  158.         OSTimeDly(4);   /*讓運(yùn)行中的任務(wù)進(jìn)入等待狀態(tài)200ms*/

  159.         }
  160. }

  161. word cc;
  162. /*定義任務(wù)D------------發(fā)送數(shù)據(jù)至CAN口,到電腦*/
  163. void  TaskStartD (void *pdata)
  164. {
  165.     pdata  = pdata;
  166.     for(;;)
  167.     {  
  168.         watchdog_clr();



  169.         //CAN_sr();         
  170.         //SCISend('A');  
  171.         
  172.         
  173.         //UART_sr();

  174.         td++;
  175.         OSTimeDly(1);   /*讓運(yùn)行中的任務(wù)進(jìn)入等待狀態(tài)60ms*/
  176.     }
  177. }



  178. /*定義任務(wù)/E---------------------發(fā)送數(shù)據(jù)至串口,到電腦*/
  179. void  TaskStartE (void *pdata)
  180. {
  181.   
  182.         pdata  = pdata;
  183.   
  184.         for(;;)
  185.         {  
  186.         watchdog_clr();

  187.         //UART_sr();
  188.         te++;
  189.         OSTimeDly(1);   /*讓運(yùn)行中的任務(wù)進(jìn)入等待狀態(tài)100*10ms*/
  190.         }
  191. }


  192. /*定義任務(wù)F*/
  193. void  TaskStartF (void *pdata)
  194. {
  195.         pdata  = pdata;
  196.        
  197.         for(;;)
  198.         {           
  199.         watchdog_clr();

  200.         //Ad5668Out(0,0,2048);                       //控制57檔B    待測板的AD10
  201.         if(tf>=1) UART_sr();
  202.         
  203.         tf++;
  204.         OSTimeDly(0);   /*讓運(yùn)行中的任務(wù)進(jìn)入等待狀態(tài)0ms*/
  205.         }
  206. }
復(fù)制代碼

所有資料51hei提供下載:
串口發(fā)送XDP512 兩個(gè)串口同時(shí)發(fā)送.rar (1.77 MB, 下載次數(shù): 17)



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

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 综合精品久久久 | 超碰在线人人干 | 欧美一区二区免费 | 国产在线小视频 | 日韩欧美1区2区 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 日韩一区二区在线观看视频 | 欧美在线日韩 | 久草影视在线 | 国产一区h | 超碰精品在线 | 欧美国产视频一区二区 | 欧美成人一区二区 | 日韩精品一区二区三区中文字幕 | 色综合久久天天综合网 | 亚洲精品视频一区 | 欧美一级欧美一级在线播放 | 欧美国产亚洲一区二区 | 午夜视频在线 | 成人妇女免费播放久久久 | 中文字幕在线免费视频 | 成人免费视频一区二区 | 免费看黄视频网站 | 亚洲欧洲日韩精品 中文字幕 | 国产a区 | 国产精品一区在线观看你懂的 | 国产精品美女视频 | 国产精品一区在线观看你懂的 | 国产在线视频一区二区 | 黄色一级免费观看 | 亚洲毛片在线观看 | 国产精品久久久久久一区二区三区 | jizz视频| 一区二区亚洲 | 日本一区二区三区四区 | 久久精品欧美一区二区三区不卡 | 男女羞羞视频免费看 | 特黄色毛片| 亚洲国产成人在线视频 | 欧美精品1区 | 欧美一区二区三区在线观看 |