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

📄 menus.lst

📁 xc164的双can的使用例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
  535  4                                              if (CAN_HWOBJ[mo].uwMSGCTR & 0x0080) // if MO valid
  536  4                                              {
  537  5                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xff7f;        // disable MO
  538  5                                                      CAN_HWOBJ[mo].uwMSGCFG |= 0x0008;       // Set dir to tx
  539  5                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xffbf;        // enable MO
  540  5                                              }
  541  4                                              else // if MO invalid
  542  4                                              {
  543  5                                                      CAN_HWOBJ[mo].uwMSGCFG |= 0x0008;       // Set dir to tx
  544  5                                              }
  545  4                                              PrintPrompt(3,mo);
  546  4                                              MenuID = 3;
  547  4                                              MO_Status[mo]=1;
  548  4                                              UpdateStatus();
  549  4                                      }
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 10  

  550  3                                      else if (key == 'I' || key == 'i')
  551  3                                      {
  552  4                                              PrintPrompt(5, mo);
  553  4                                              MenuID = 5;
  554  4                                      }
  555  3                                      else if (key == 'M' || key == 'm')
  556  3                                      {
  557  4                                              PrintPrompt(6, mo);
  558  4                                              MenuID = 6;
  559  4                                      }
  560  3                                      else if (key == 'D' || key == 'd')
  561  3                                      {
  562  4                                              PrintPrompt(7, mo);
  563  4                                              MenuID = 7;
  564  4                                      }
  565  3                                      else if (key == 'V' || key == 'v')
  566  3                                      {
  567  4                                              PrintPrompt(8, mo);
  568  4                                              MenuID = 8;
  569  4                                      }
  570  3                                      break;
  571  3                              case 4:
  572  3                                      if (key == 27)  // Escape
  573  3                                      {
  574  4                                              PrintPrompt(3,mo);
  575  4                                              MenuID = 3;
  576  4                                      }
  577  3                                      else if (key == 'A' || key == 'a')
  578  3                                      {
  579  4                                              if (CAN_HWOBJ[mo].uwMSGCTR & 0x0080) // if MO valid
  580  4                                              {
  581  5                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xff7f;        // disable MO
  582  5                                                      CAN_HWOBJ[mo].uwMSGCFG &= ~0x0002;      // Set to Node A
  583  5                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xffbf;        // enable MO
  584  5                                              }
  585  4                                              else // if MO invalid
  586  4                                              {
  587  5                                                      CAN_HWOBJ[mo].uwMSGCFG &= ~0x0002;      // Set to Node A
  588  5                                              }
  589  4                                              PrintPrompt(3,mo);
  590  4                                              MenuID = 3;
  591  4                                              MO_Status[mo]=1;
  592  4                                              UpdateStatus();
  593  4                                      }
  594  3                                      else if (key == 'B' || key == 'b')
  595  3                                      {
  596  4                                              if (CAN_HWOBJ[mo].uwMSGCTR & 0x0080) // if MO valid
  597  4                                              {
  598  5                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xff7f;        // disable MO
  599  5                                                      CAN_HWOBJ[mo].uwMSGCFG |= 0x0002;       // Set to Node B
  600  5                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xffbf;        // enable MO
  601  5                                              }
  602  4                                              else // if MO invalid
  603  4                                              {
  604  5                                                      CAN_HWOBJ[mo].uwMSGCFG |= 0x0002;       // Set to Node B
  605  5                                              }
  606  4                                              PrintPrompt(3,mo);
  607  4                                              MenuID = 3;
  608  4                                              MO_Status[mo]=1;
  609  4                                              UpdateStatus();
  610  4                                      }
  611  3                                      break;
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 11  

  612  3                              case 5:
  613  3                                      if (key == 27)  // Escape
  614  3                                      {
  615  4                                              PrintPrompt(3,mo);
  616  4                                              MenuID = 3;
  617  4                                      }
  618  3                                      if (digit_index)
  619  3                                      {
  620  4                                              if (key == 8)   // backspace
  621  4                                              {
  622  5                                                      MoveCursor(CursorPosY, --CursorPosX);
  623  5                                                      putchar(' ');
  624  5                                                      MoveCursor(CursorPosY, CursorPosX);
  625  5                                                      digits[--digit_index] = 0;
  626  5                                              }
  627  4                                      }
  628  3                                      if(digit_index < 4)
  629  3                                      {
  630  4                                              if (digit_index)
  631  4                                              {
  632  5                                                      if (key == 13)  //Enter
  633  5                                                      {
  634  6                                                              if (CAN_HWOBJ[mo].uwMSGCTR & 0x0080) // if MO valid
  635  6                                                              {
  636  7                      
  637  7                                                                      CAN_HWOBJ[mo].uwMSGCTR = 0xfb7f;        // Set CPU Update, reset MSGVAL
  638  7                                                                      if (digit_index == 1)
  639  7                                                                      {
  640  8                                                                              CAN_HWOBJ[mo].ulCANAR   = (unsigned long)(digits[0]) << 18;
  641  8                                                                      }
  642  7                                                                      else if (digit_index == 2)
  643  7                                                                      {
  644  8                                                                              CAN_HWOBJ[mo].ulCANAR   = (unsigned long)((digits[0]<<4)|digits[1]) << 18;
  645  8                                                                      }
  646  7                                                                      else if (digit_index == 3)
  647  7                                                                      {
  648  8                                                                              CAN_HWOBJ[mo].ulCANAR   = ((unsigned long)((unsigned long)(digits[0]<<8)|(digits[1]<<4)|digits[2]
             -) & 0x07FF) << 18;
  649  8                                                                      }
  650  7                                                                      CAN_HWOBJ[mo].uwMSGCTR  = 0xf7bf;  // reset CPUUPD, set MSGVAL
  651  7                                                              }
  652  6                                                              else
  653  6                                                              {
  654  7                                                                      if (digit_index == 1)
  655  7                                                                      {
  656  8                                                                              CAN_HWOBJ[mo].ulCANAR   = (unsigned long)(digits[0]) << 18;
  657  8                                                                      }
  658  7                                                                      else if (digit_index == 2)
  659  7                                                                      {
  660  8                                                                              CAN_HWOBJ[mo].ulCANAR   = (unsigned long)((digits[0]<<4)|digits[1]) << 18;
  661  8                                                                      }
  662  7                                                                      else if (digit_index == 3)
  663  7                                                                      {
  664  8                                                                              CAN_HWOBJ[mo].ulCANAR   = ((unsigned long)((unsigned long)(digits[0]<<8)|(digits[1]<<4)|digits[2]
             -) & 0x07FF) << 18;
  665  8                                                                      }
  666  7                                                              }
  667  6                                                              MO_Status[mo] = 1;
  668  6                                                              PrintPrompt(3, mo);
  669  6                                                              MenuID = 3;
  670  6                                                      }
  671  5                                              }
C166 COMPILER V6.02, MENUS                                                                 08/28/2006 10:05:57 PAGE 12  

  672  4                                              if (digit_index < 3)
  673  4                                              {
  674  5                                                      if ( (key < ';') && (key > '/') ) // digit
  675  5                                                      {
  676  6                                                              putchar(key);
  677  6                                                              CursorPosX++;
  678  6                                                              digits[digit_index++] = key-48;         // convert to number
*** WARNING C192 IN LINE 678 OF MENUS.C: '=': value truncated
  679  6                                                      }
  680  5                                                      else if ( (key < 'G') && (key > '@') ) // Cap Letter
  681  5                                                      {
  682  6                                                              putchar(key);
  683  6                                                              CursorPosX++;
  684  6                                                              digits[digit_index++] = key-55;         // convert to number
*** WARNING C192 IN LINE 684 OF MENUS.C: '=': value truncated
  685  6                                                      }
  686  5                                                      else if ( (key < 'g') && (key > 96) ) // Small Letter
  687  5                                                      {
  688  6                                                              putchar(key);
  689  6                                                              CursorPosX++;
  690  6                                                              digits[digit_index++] = key-87; // convert to number
*** WARNING C192 IN LINE 690 OF MENUS.C: '=': value truncated
  691  6                                                      }
  692  5                                              }
  693  4                                      }
  694  3                                      break;
  695  3                              case 6:
  696  3                                      if (key == 27)  // Escape
  697  3                                      {
  698  4                                              PrintPrompt(3,mo);
  699  4                                              MenuID = 3;
  700  4                                      }
  701  3                                      if (digit_index)
  702  3                                      {
  703  4                                              if (key == 8)   // backspace
  704  4                                              {
  705  5                                                      MoveCursor(CursorPosY, --CursorPosX);
  706  5                                                      putchar(' ');
  707  5                                                      MoveCursor(CursorPosY, CursorPosX);
  708  5                                                      digits[--digit_index] = 0;
  709  5                                              }
  710  4                                      }

⌨️ 快捷键说明

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