📄 debugger.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 + -