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

📄 debugger.ini

📁 这是单片机C51典型应用设计代码
💻 INI
字号:
/* ========================DEBUGGER.INI=============================
 * Contains debug functions for the sample CAN project (App_Nt 165).
 *
 * - PressSwitch enables simulation of buttons on memory mapped I/O
 * - CANMessage  prints message information of send messages
 * - SendInfo    sends 8Byte messages on a arbitrary ID
 * - SimTraffic  simulates sending of messages in a short interval
 *
 * =================================================================
 */


/* 
 * Simulate a 0.1 Second Click on Switch I/O Port (for S1 & S2) 
 */
SIGNAL void PressSwitch (unsigned char v)  {
  unsigned char cx;

  cx = _rbyte (X:0xFFA0);        // get current value on I/O Port
  _wbyte (X:0xFFA0, cx |  v);    // set I/O Port value for switch v
  swatch (0.1);                  // press switch for 0.1 seconds
  cx = _rbyte (X:0xFFA0);        // get current value on I/O Port
  _wbyte (X:0xFFA0, cx & (~v));  // reset I/O Port value switch v
}


/*
 * Define Buttons for the toolbox with presets for PressSwitch
 */
define button "Press S1",    "PressSwitch (1)" 
define button "Press S2",    "PressSwitch (2)"
define button "Press Both",  "PressSwitch (3)"


/* 
 * Print the last message sent by the controller 
 */
FUNC void CANmessage (void) {
  switch (CAN0OUT) {
    case 1: printf("\nSend Message (11-bit ID=%04X)", CAN0ID);    break;
    case 2: printf("\nSend Message (29-bit ID=%08X)", CAN0ID);    break;
    case 3: printf("\nRequest Message (11-bit ID=%04X)", CAN0ID); return;
    case 4: printf("\nRequest Message (29-bit ID=%08X)", CAN0ID); return;
  }
  printf("\nMessage Length %d, Data: ", CAN0L);
  printf("%02X %02X %02X %02X ", CAN0B0, CAN0B1, CAN0B2, CAN0B3);
  printf("%02X %02X %02X %02X\n", CAN0B4, CAN0B5, CAN0B6, CAN0B7);
}


/* 
 * Set Breakpoint on CAN Output VTREG
 */
BS WRITE CAN0OUT, 1, "CANmessage()" 


/* 
 * Send Information on any ID
 */
FUNC void SendInfo (unsigned long id,    // message ID
                    unsigned char len,   // message length
                    unsigned char val) { // 1. value byte
  CAN0ID = id;      // Set VTREG that keeps next ID
  CAN0L  = len;     // Set VTREG with message length
  CAN0B0 = val;     // Set the data registers
  CAN0B1 = val+1;
  CAN0B2 = val+2;
  CAN0B3 = val+3;
  CAN0B4 = val+4;
  CAN0B5 = val+5;
  CAN0B6 = val+6;
  CAN0B7 = val+7;
  CAN0IN = 2;      // Send message to simulated controller
}


/* 
 * Send 5 messages in short intervals on ID 103h 
 */
SIGNAL void SimTraffic (void) {
  int i;
  for (i=0; i<=5; i++) {
    SendInfo(0x103,8,'0'+(i*8));      // Send CAN message on ID 103h
    swatch(0.00025);                  // wait 0.00025sec before next message is send
  }
}


/*
 * Define Buttons for the toolbox for easy access to SendInfo and SimTraffic
 */
define button "Send Switches = ON",  "SendInfo(0x101,1,0x30)"
define button "Send Switches = OFF", "SendInfo(0x101,1,0x00)"
define button "Send Remote Frame",   "SendInfo(0x104,8,0x00)"
define button "Simulate Reception Traffic", "SimTraffic()"





⌨️ 快捷键说明

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