⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menus.lst

📁 xc164的双can的使用例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
  175  2              }
  176  1              else if (p == 6)
  177  1              {
  178  2                      MoveCursor(CursorPosY=19, CursorPosX=1);
  179  2                      printf("Current Settings for MO: %d", mo);
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 4   

  180  2                      printf("\n");   // New line
  181  2                      CAN_vGetMsgObj(mo, &SW_MO);
  182  2                      if(SW_MO.uwMsgCfg&0x2)
  183  2                              printf("Node=B ");
  184  2                      else
  185  2                              printf("Node=A ");
  186  2                      if(SW_MO.uwMsgCfg & 0x08)
  187  2                              printf("DIR=TX ");                                                      // DIR
  188  2                      else
  189  2                              printf("DIR=RX ");                                                      // DIR
  190  2                      printf("ID=0x%03x", SW_MO.ulID);                                        // ID
  191  2                      printf(" ");
  192  2                      printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
  193  2                      printf(" Data=");
  194  2                      for(i = 0; i < 8; i++)
  195  2                      {
  196  3                              if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
  197  3                                      putchar('-');
  198  3                              else
  199  3                              {
  200  4                                      if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
  201  4                                              putchar(SW_MO.ubData[i]);                       // Data
  202  4                                      else
  203  4                                              putchar('-');           
  204  4                              }
  205  3                      }
  206  2                      printf("\n\n"); // New lines
  207  2                      printf("Enter the 11-bit Mask in Hex (0=don't care, 1=care about ID bit):\n");
  208  2                      printf("0x");
  209  2                      CursorPosX = 3;
  210  2                      CursorPosY = 23;
  211  2              }
  212  1              else if (p == 7)
  213  1              {
  214  2                      MoveCursor(CursorPosY=19, CursorPosX=1);
  215  2                      printf("Current Settings for MO: %d", mo);
  216  2                      printf("\n");   // New line
  217  2                      CAN_vGetMsgObj(mo, &SW_MO);
  218  2                      if(SW_MO.uwMsgCfg&0x2)
  219  2                              printf("Node=B ");
  220  2                      else
  221  2                              printf("Node=A ");
  222  2                      if(SW_MO.uwMsgCfg & 0x08)
  223  2                              printf("DIR=TX ");                                                      // DIR
  224  2                      else
  225  2                              printf("DIR=RX ");                                                      // DIR
  226  2                      printf("ID=0x%03x", SW_MO.ulID);                                        // ID
  227  2                      printf(" ");
  228  2                      printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
  229  2                      printf(" Data=");
  230  2                      for(i = 0; i < 8; i++)
  231  2                      {
  232  3                              if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
  233  3                                      putchar('-');
  234  3                              else
  235  3                              {
  236  4                                      if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
  237  4                                              putchar(SW_MO.ubData[i]);                       // Data
  238  4                                      else
  239  4                                              putchar('-');           
  240  4                              }
  241  3                      }
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 5   

  242  2                      printf("\n\n"); // New lines
  243  2                      printf("Enter upto 8 characters for the frame data (data sent will be characters):\n");
  244  2                      CursorPosX = 1;
  245  2                      CursorPosY = 23;
  246  2              }
  247  1              else if (p == 8)
  248  1              {
  249  2                      MoveCursor(CursorPosY=19, CursorPosX=1);
  250  2                      printf("Current Settings for MO: %d", mo);
  251  2                      printf("\n");   // New line
  252  2                      CAN_vGetMsgObj(mo, &SW_MO);
  253  2                      if(SW_MO.uwMsgCfg&0x2)
  254  2                              printf("Node=B ");
  255  2                      else
  256  2                              printf("Node=A ");
  257  2                      if(SW_MO.uwMsgCfg & 0x08)
  258  2                              printf("DIR=TX ");                                                      // DIR
  259  2                      else
  260  2                              printf("DIR=RX ");                                                      // DIR
  261  2                      printf("ID=0x%03x", SW_MO.ulID);                                        // ID
  262  2                      printf(" ");
  263  2                      printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
  264  2                      printf(" Data=");
  265  2                      for(i = 0; i < 8; i++)
  266  2                      {
  267  3                              if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
  268  3                                      putchar('-');
  269  3                              else
  270  3                              {
  271  4                                      if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
  272  4                                              putchar(SW_MO.ubData[i]);                       // Data
  273  4                                      else
  274  4                                              putchar('-');           
  275  4                              }
  276  3                      }
  277  2                      printf("\n\n"); // New lines
  278  2                      printf("Enter 'E' to Enable the Message Objec or 'D' to Disable the Message Object:\n");
  279  2                      CursorPosX = 1;
  280  2                      CursorPosY = 23;
  281  2              }
  282  1      
  283  1              for (i = 0; i< 10 ; i++)
  284  1                      digits[i] = 0;
  285  1              digit_index = 0;
  286  1      }
  287         
  288         void MoveCursor(unsigned int y, unsigned int x)
  289         {
  290  1              unsigned int i;
  291  1      
  292  1              printf("\033[f");               // Move cursor to upper left corner
  293  1              for (i = 1; i< y; i++)
  294  1                      printf("\033[1B");      // Move cursor down one line
  295  1      
  296  1              for (i = 1; i< x; i++)
  297  1                      printf("\033[1C");      // Move cursor Right one space
  298  1      }
  299         
  300         void UpdateStatus(void)
  301         {
  302  1              unsigned int i;
  303  1              //unsigned int j;
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 6   

  304  1              unsigned int k;
  305  1      
  306  1              for (i = 0; i<32; i++)
  307  1              {
  308  2                      if (MO_Status[i])
  309  2                      {
  310  3                              MO_Status[i] = 0;
  311  3                              if(i & 0x01)
  312  3                              {
  313  4                                      MoveCursor((i>>1)+2, 42);
  314  4                              }
  315  3                              else
  316  3                              {
  317  4                                      MoveCursor((i>>1)+2, 1);
  318  4                              }
  319  3                              printf("                               ");      // Clear field
  320  3                              printf("\033[31D");                                                     // Move Cursor back
  321  3                              if (CAN_HWOBJ[i].uwMSGCTR & 0x0080) // if MO valid
  322  3                              {
  323  4                                      CAN_vGetMsgObj(i, &SW_MOs[i]);
  324  4                                      printf("%02d",i);                                                               // MO
  325  4                                      if(SW_MOs[i].uwMsgCfg & 0x2)
  326  4                                              printf("   B");
  327  4                                      else
  328  4                                              printf("   A");
  329  4      
  330  4                                      if(SW_MOs[i].uwMsgCfg & 0x08)
  331  4                                              printf("      TX");                                                     // DIR
  332  4                                      else
  333  4                                              printf("      RX");                                                     // DIR
  334  4                                      printf("  0x%03x", SW_MOs[i].ulID);                             // ID
  335  4                                      printf("  ");
  336  4                                      
  337  4                                      printf("0x%03x", SW_MOs[i].ulMask & 0x7FF);
  338  4                                      printf("  ");
  339  4                                      
  340  4                                      for(k = 0; k < 8; k++)
  341  4                                      {
  342  5                                              if (k >= ((SW_MOs[i].uwMsgCfg&0x00F0)>>4) )
  343  5                                                      putchar('-');
  344  5                                              else
  345  5                                              {
  346  6                                                      if( (SW_MOs[i].ubData[k] > 31) && (SW_MOs[i].ubData[k] < 127) )
  347  6                                                              putchar(SW_MOs[i].ubData[k]);                   // Data
  348  6                                                      else
  349  6                                                              putchar('-');
  350  6                                              }
  351  5                                      }
  352  4                              }
  353  3                              else
  354  3                              {
  355  4                                      printf("%02d",i);                       // MO

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -