We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi,
I'm debugging an interrupt service routine. I simulate a CAN message and expect the simulator to generate a receive interrupt, but this doesn't happen. I also tried this on a Keil code example, but the result was the same, so I assume the problem isn't in my code. Here's what I did:
1) Load the project Keil\ARM\Boards\Keil\MCB2300\CAN\CAN.uvproj in the IDE. 2) Add the following code to CAN_Simulate.ini:
func void CAN_transmit(void) { CAN1ID = 0xC7; CAN1L = 7; CAN1B0 = 0x07; CAN1B1 = 0xD4; CAN1B2 = 0x0C; CAN1B3 = 0x1F; CAN1B4 = 0x0A; CAN1B5 = 0x01; CAN1B6 = 0x00; CAN1B7 = 0x00; CAN1IN = 1; } define button "Send CAN message", "CAN_transmit();"
3) Compile. 4) Set a breakpoint in CAN.c after the line:
if (CAN1->GSR & (1 << 0)) { /* CAN Controller #1 meassage is received */
5) Run. 6) Click on the "Send CAN message" button. 7) See a received message in the "CAN communication" window, but no receive interrupt is generated.
At the same time transmit interrupts do get generated. What am doing wrong?