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

📄 menus.lst

📁 xc164的双can的使用例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 1   


C166 COMPILER V6.02, COMPILATION OF MODULE MENUS
OBJECT MODULE PLACED IN Menus.OBJ
COMPILER INVOKED BY: C:\Keil\C166\BIN\C166.EXE Menus.c MODV2 BROWSE MODV2 DEBUG

 stmt lvl     source

    1         #include "Main.h"
    2         
    3         unsigned char digits[10];
    4         unsigned int digit_index = 0;
    5         extern struct stCanObj 
    6         {
    7           ubyte  ubData[8];  // Message Data 0..7
    8           ulong  ulCANAR;    // Arbitration Register
    9           ulong  ulCANAMR;   // Acceptance Mask Register
   10           uword  uwMSGCTR;   // Message Control Register
   11           uword  uwCounter;  // Frame Counter
   12           uword  uwMSGCFG;   // Message Configuration Register
   13           uword  uwINP;      // Interrupt Node Pointer
   14           uword  uwCANFCR;   // FIFO / Gateway Control Register 
   15           uword  uwCANPTR;   // FIFO Pointer
   16           ulong  ulReserved; // Reserved
   17         };
   18         
   19         void PrintMainMenu(void)
   20         {
   21  1              unsigned int i;
   22  1      
   23  1              printf("\033[2J");                                              // Clear Screen
   24  1              printf("MO:  Node: DIR:  ID:   Data:          MO:  Node: DIR:  ID:   Data:\n");
   25  1              for (i = 0; i< 31; i+=2)
   26  1              {
   27  2                      printf("%02d",i);                       // MO
   28  2                      printf("   -");         // Node
   29  2                      printf("      --");                     // DIR
   30  2                      printf("   ----");                      // ID
   31  2                      printf("  --------");           // Data
   32  2                      printf("       %02d",i+1);      // MO
   33  2                      printf("   -");         // Node
   34  2                      printf("      --");                     // DIR
   35  2                      printf("   ----");                      // ID
   36  2                      printf("  --------\n");         // Data
   37  2              }
   38  1              PrintPrompt(0,0);
   39  1      }
   40         void PrintPrompt(unsigned int p, unsigned int mo)
   41         {
   42  1              unsigned int i;
   43  1              TCAN_SWObj SW_MO;
   44  1      
   45  1              for(i = 18; i<25; i++)
   46  1              {
   47  2                      MoveCursor(CursorPosY=i, CursorPosX=1);
   48  2                      printf("\033[2K");                                              // Clear Line
   49  2              }
   50  1              if(p==0)        // Main Propmpt
   51  1              {
   52  2                      MoveCursor(CursorPosY=22,CursorPosX=1);
   53  2                      printf("Enter 'E' to Edit MO, Enter 'T' to Transmit MO, Enter 'R' to Refresh:\n");
   54  2                      CursorPosX = 1;
   55  2                      CursorPosY = 23;
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 2   

   56  2              }
   57  1              else if (p==1)  // Transmit Prompt
   58  1              {
   59  2                      MoveCursor(CursorPosY=22, CursorPosX=1);
   60  2                      printf("Enter MO# to Transmit (ESC to go back):\n");
   61  2                      CursorPosX = 1;
   62  2                      CursorPosY = 23;
   63  2              }
   64  1              else if (p == 2)
   65  1              {
   66  2                      MoveCursor(CursorPosY=22, CursorPosX=1);
   67  2                      printf("Enter MO# to Edit (ESC to go back):\n");
   68  2                      CursorPosY++;
   69  2              }
   70  1              else if (p == 3)
   71  1              {
   72  2                      MoveCursor(CursorPosY=19, CursorPosX=1);
   73  2                      printf("Current Settings for MO: %d", mo);
   74  2                      printf("\n");   // New line
   75  2                      CAN_vGetMsgObj(mo, &SW_MO);
   76  2                      if(SW_MO.uwMsgCfg&0x2)
   77  2                              printf("Node=B ");
   78  2                      else
   79  2                              printf("Node=A ");
   80  2                      if(SW_MO.uwMsgCfg & 0x08)
   81  2                              printf("DIR=TX ");                                                      // DIR
   82  2                      else
   83  2                              printf("DIR=RX ");                                                      // DIR
   84  2                      printf("ID=0x%03x", SW_MO.ulID);                                        // ID
   85  2                      printf(" ");
   86  2                      printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
   87  2                      printf(" Data=");
   88  2                      for(i = 0; i < 8; i++)
   89  2                      {
   90  3                              if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
   91  3                                      putchar('-');
   92  3                              else
   93  3                              {
   94  4                                      if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
   95  4                                              putchar(SW_MO.ubData[i]);                       // Data
   96  4                                      else
   97  4                                              putchar('-');
   98  4                              }
   99  3                      }
  100  2                      printf("\n\n"); // New lines
  101  2                      printf("Enter Field to Edit: N=Node, R=RX, T=TX, I=ID, M=Mask, D=Data, V=Enable\\Disable\n");
  102  2                      CursorPosX = 1;
  103  2                      CursorPosY = 23;
  104  2              }
  105  1              else if (p == 4)
  106  1              {
  107  2                      MoveCursor(CursorPosY=19, CursorPosX=1);
  108  2                      printf("Current Settings for MO: %d", mo);
  109  2                      printf("\n");   // New line
  110  2                      CAN_vGetMsgObj(mo, &SW_MO);
  111  2                      if(SW_MO.uwMsgCfg&0x2)
  112  2                              printf("Node=B ");
  113  2                      else
  114  2                              printf("Node=A ");
  115  2                      if(SW_MO.uwMsgCfg & 0x08)
  116  2                              printf("DIR=TX ");                                                      // DIR
  117  2                      else
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 3   

  118  2                              printf("DIR=RX ");                                                      // DIR
  119  2                      printf("ID=0x%03x", SW_MO.ulID);                                        // ID
  120  2                      printf(" ");
  121  2                      printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
  122  2                      printf(" Data=");
  123  2                      for(i = 0; i < 8; i++)
  124  2                      {
  125  3                              if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
  126  3                                      putchar('-');
  127  3                              else
  128  3                              {
  129  4                                      if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
  130  4                                              putchar(SW_MO.ubData[i]);                       // Data
  131  4                                      else
  132  4                                              putchar('-');           
  133  4                              }
  134  3                      }
  135  2                      printf("\n\n"); // New lines
  136  2                      printf("Enter 'A' or 'B' to Assign the MO to Node A or B:\n");
  137  2                      CursorPosX = 1;
  138  2                      CursorPosY = 23;
  139  2              }
  140  1              else if (p == 5)
  141  1              {
  142  2                      MoveCursor(CursorPosY=19, CursorPosX=1);
  143  2                      printf("Current Settings for MO: %d", mo);
  144  2                      printf("\n");   // New line
  145  2                      CAN_vGetMsgObj(mo, &SW_MO);
  146  2                      if(SW_MO.uwMsgCfg&0x2)
  147  2                              printf("Node=B ");
  148  2                      else
  149  2                              printf("Node=A ");
  150  2                      if(SW_MO.uwMsgCfg & 0x08)
  151  2                              printf("DIR=TX ");                                                      // DIR
  152  2                      else
  153  2                              printf("DIR=RX ");                                                      // DIR
  154  2                      printf("ID=0x%03x", SW_MO.ulID);                                        // ID
  155  2                      printf(" ");
  156  2                      printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
  157  2                      printf(" Data=");
  158  2                      for(i = 0; i < 8; i++)
  159  2                      {
  160  3                              if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
  161  3                                      putchar('-');
  162  3                              else
  163  3                              {
  164  4                                      if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
  165  4                                              putchar(SW_MO.ubData[i]);                       // Data
  166  4                                      else
  167  4                                              putchar('-');           
  168  4                              }
  169  3                      }
  170  2                      printf("\n\n"); // New lines
  171  2                      printf("Enter the ID in Hex (upto 11 bits):\n");
  172  2                      printf("0x");
  173  2                      CursorPosX = 3;
  174  2                      CursorPosY = 23;

⌨️ 快捷键说明

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