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

📄 menus.lst

📁 xc164的双can的使用例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
  711  3                                      if(digit_index < 4)
  712  3                                      {
  713  4                                              if (digit_index)
  714  4                                              {
  715  5                                                      if (key == 13)  //Enter
  716  5                                                      {
  717  6                                                              if (CAN_HWOBJ[mo].uwMSGCTR & 0x0080) // if MO valid
  718  6                                                              {
  719  7                      
  720  7                                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xfb7f;        // Set CPU Update, reset MSGVAL
  721  7                                                                      if (digit_index == 1)
  722  7                                                                      {
  723  8                                                                              CAN_HWOBJ[mo].ulCANAMR   = (unsigned long)(digits[0]) << 18;
  724  8                                                                      }
  725  7                                                                      else if (digit_index == 2)
  726  7                                                                      {
  727  8                                                                              CAN_HWOBJ[mo].ulCANAMR   = (unsigned long)((digits[0]<<4)|digits[1]) << 18;
  728  8                                                                      }
  729  7                                                                      else if (digit_index == 3)
  730  7                                                                      {
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 13  

  731  8                                                                              CAN_HWOBJ[mo].ulCANAMR   = ((unsigned long)((unsigned long)(digits[0]<<8)|(digits[1]<<4)|digits[2
             -]) & 0x07FF) << 18;
  732  8                                                                      }
  733  7                                                                      CAN_HWOBJ[mo].uwMSGCTR  = 0xf7bf;  // reset CPUUPD, set MSGVAL
  734  7                                                              }
  735  6                                                              else
  736  6                                                              {
  737  7                                                                      if (digit_index == 1)
  738  7                                                                      {
  739  8                                                                              CAN_HWOBJ[mo].ulCANAMR   = (unsigned long)(digits[0]) << 18;
  740  8                                                                      }
  741  7                                                                      else if (digit_index == 2)
  742  7                                                                      {
  743  8                                                                              CAN_HWOBJ[mo].ulCANAMR   = (unsigned long)((digits[0]<<4)|digits[1]) << 18;
  744  8                                                                      }
  745  7                                                                      else if (digit_index == 3)
  746  7                                                                      {
  747  8                                                                              CAN_HWOBJ[mo].ulCANAMR   = ((unsigned long)((unsigned long)(digits[0]<<8)|(digits[1]<<4)|digits[2
             -]) & 0x07FF) << 18;
  748  8                                                                      }
  749  7                                                              }
  750  6                                                              MO_Status[mo] = 1;
  751  6                                                              PrintPrompt(3, mo);
  752  6                                                              MenuID = 3;
  753  6                                                      }
  754  5                                              }
  755  4                                              if (digit_index < 3)
  756  4                                              {
  757  5                                                      if ( (key < ';') && (key > '/') ) // digit
  758  5                                                      {
  759  6                                                              putchar(key);
  760  6                                                              CursorPosX++;
  761  6                                                              digits[digit_index++] = key-48;         // convert to number
*** WARNING C192 IN LINE 761 OF MENUS.C: '=': value truncated
  762  6                                                      }
  763  5                                                      else if ( (key < 'G') && (key > '@') ) // Cap Letter
  764  5                                                      {
  765  6                                                              putchar(key);
  766  6                                                              CursorPosX++;
  767  6                                                              digits[digit_index++] = key-55;         // convert to number
*** WARNING C192 IN LINE 767 OF MENUS.C: '=': value truncated
  768  6                                                      }
  769  5                                                      else if ( (key < 'g') && (key > 96) ) // Small Letter
  770  5                                                      {
  771  6                                                              putchar(key);
  772  6                                                              CursorPosX++;
  773  6                                                              digits[digit_index++] = key-87; // convert to number
*** WARNING C192 IN LINE 773 OF MENUS.C: '=': value truncated
  774  6                                                      }
  775  5                                              }
  776  4                                      }
  777  3                                      break;
  778  3                              case 7:
  779  3                                      if (key == 27)  // Escape
  780  3                                      {
  781  4                                              PrintPrompt(3,mo);
  782  4                                              MenuID = 3;
  783  4                                      }
  784  3                                      if (digit_index)
  785  3                                      {
  786  4                                              if (key == 8)   // backspace
  787  4                                              {
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 14  

  788  5                                                      MoveCursor(CursorPosY, --CursorPosX);
  789  5                                                      putchar(' ');
  790  5                                                      MoveCursor(CursorPosY, CursorPosX);
  791  5                                                      digits[--digit_index] = 0;
  792  5                                              }
  793  4                                      }
  794  3                                      if(digit_index < 9)
  795  3                                      {
  796  4                                              if (digit_index)
  797  4                                              {
  798  5                                                      if (key == 13)  //Enter
  799  5                                                      {
  800  6                                                              // <<<<<<<<< NEED TO add NEWDAT and Check if DIR is RX or TX
  801  6                                                              CAN_HWOBJ[mo].uwMSGCTR = 0xfaff;       // set CPUUPD and NEWDAT
  802  6                                                              if (CAN_HWOBJ[mo].uwMSGCTR & 0x0080) // if MO valid
  803  6                                                              {
  804  7                                                                      CAN_HWOBJ[mo].uwMSGCFG &= 0xFF0F;
  805  7                                                                      CAN_HWOBJ[mo].uwMSGCFG |= digit_index << 4;     // Set DLC
  806  7                                                                      for (i = 0; i< digit_index; i++)
  807  7                                                                              CAN_HWOBJ[mo].ubData[i] = digits[i];
  808  7                                                                      CAN_HWOBJ[mo].uwMSGCTR  = 0xf7bf;  // reset CPUUPD, set MSGVAL
  809  7                                                              }
  810  6                                                              else
  811  6                                                              {       
  812  7                                                                      CAN_HWOBJ[mo].uwMSGCFG &= 0xFF0F;
  813  7                                                                      CAN_HWOBJ[mo].uwMSGCFG |= digit_index << 4;     // Set DLC
  814  7                                                                      for (i = 0; i< digit_index; i++)
  815  7                                                                              CAN_HWOBJ[mo].ubData[i] = digits[i];
  816  7                                                                      CAN_HWOBJ[mo].uwMSGCTR  = 0xf7Ff;  // reset CPUUPD
  817  7                                                              }
  818  6                                                              MO_Status[mo] = 1;
  819  6                                                              PrintPrompt(3, mo);
  820  6                                                              MenuID = 3;
  821  6                                                      }
  822  5                                              }
  823  4                                              if (digit_index < 8)
  824  4                                              {
  825  5                                                      if ( (key < 127) && (key > 31) ) // visible key
  826  5                                                      {
  827  6                                                              putchar(key);
  828  6                                                              CursorPosX++;
  829  6                                                              digits[digit_index++] = key;
*** WARNING C192 IN LINE 829 OF MENUS.C: '=': value truncated
  830  6                                                      }
  831  5                                              }
  832  4                                      }
  833  3                                      break;
  834  3                              case 8:
  835  3                                      if (key == 27)  // Escape
  836  3                                      {
  837  4                                              PrintPrompt(3,mo);
  838  4                                              MenuID = 3;
  839  4                                      }
  840  3                                      else if (key == 'E' || key == 'e')
  841  3                                      {
  842  4                                              CAN_HWOBJ[mo].uwMSGCTR = 0xffbf;        // enable MO
  843  4                                              PrintPrompt(3,mo);
  844  4                                              MenuID = 3;
  845  4                                              MO_Status[mo]=1;
  846  4                                              UpdateStatus();
  847  4                                      }
  848  3                                      else if (key == 'D' || key == 'd')
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 15  

  849  3                                      {
  850  4                                              CAN_HWOBJ[mo].uwMSGCTR = 0xff7f;        // disable MO
  851  4                                              PrintPrompt(3,mo);
  852  4                                              MenuID = 3;
  853  4                                              MO_Status[mo]=1;
  854  4                                              UpdateStatus();
  855  4                                      }
  856  3                                      break;
  857  3      
  858  3                              default:
  859  3                                      break;
  860  3                      }
  861  2              }
  862  1      }


MODULE INFORMATION:   INITIALIZED  UNINITIALIZED
  CODE SIZE        =        5616     --------
  NEAR-CONST SIZE  =         962     --------
  FAR-CONST SIZE   =    --------     --------
  HUGE-CONST SIZE  =    --------     --------
  XHUGE-CONST SIZE =    --------     --------
  NEAR-DATA SIZE   =          14     --------
  FAR-DATA SIZE    =    --------     --------
  XHUGE-DATA SIZE  =    --------     --------
  IDATA-DATA SIZE  =    --------     --------
  SDATA-DATA SIZE  =    --------     --------
  BDATA-DATA SIZE  =    --------     --------
  HUGE-DATA SIZE   =    --------     --------
  BIT SIZE         =    --------     --------
  INIT'L SIZE      =           6     --------
END OF MODULE INFORMATION.


C166 COMPILATION COMPLETE.  9 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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