Sending multiple messages over CAN with sparkfun can bus shield

Hi morgan code is:

#include <Canbus.h>
#include <defaults.h>
#include <global.h>
#include <mcp2515.h>
#include <mcp2515_defs.h>

//********************************Setup Loop*********************************//

void setup() {
  Serial.begin(9600);
  Serial.println("CAN Write - Testing transmission of CAN Bus messages");
  delay(1000);
  
  if(Canbus.init(CANSPEED_500))  //Initialise MCP2515 CAN controller at the specified speed
    Serial.println("CAN Init ok");
  else
    Serial.println("Can't init CAN");
    
  delay(1000);
}

//********************************Main Loop*********************************//



void loop()
{
tCAN message1;

        message1.id = 0x1A6; //formatted in HEX
        message1.header.rtr = 0;
        message1.header.length = 7; //formatted in DEC
        message1.data[0] = 0x02;
	message1.data[1] = 0x8b;
	message1.data[2] = 0xFF;
	message1.data[3] = 0x67; //formatted in HEX
	message1.data[4] = 0x00;
	message1.data[5] = 0x00;
	message1.data[6] = 0x1F;

tCAN message2;
        message2.id = 0x18F; //formatted in HEX
        message2.header.rtr = 0;
        message2.header.length = 8; //formatted in DEC
        message2.data[0] = 0x02;
  message2.data[1] = 0x8b;
  message2.data[2] = 0xFF;
  message2.data[3] = 0x67; //formatted in HEX
  message2.data[4] = 0x01;
  message2.data[5] = 0x8D;
  message2.data[6] = 0x1F;
  message2.data[7] = 0x1F;

mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);
mcp2515_send_message(&message1);

delay(10000);

mcp2515_send_message(&message2);

delay(1000);

}

Found a solution to software reset and start the loop again this works.

void loop()
{
tCAN message;

        message.id = 0x1A6; //formatted in HEX
        message.header.rtr = 0;
        message.header.length = 7; //formatted in DEC
        message.data[0] = 0x02;
	message.data[1] = 0x8b;
	message.data[2] = 0xFF;
	message.data[3] = 0x67; //formatted in HEX
	message.data[4] = 0x00;
	message.data[5] = 0x00;
	message.data[6] = 0x1F;

tCAN message2;
        message2.id = 0x18F; //formatted in HEX
        message2.header.rtr = 0;
        message2.header.length = 8; //formatted in DEC
        message2.data[0] = 0x02;
  message2.data[1] = 0x8b;
  message2.data[2] = 0xFF;
  message2.data[3] = 0x67; //formatted in HEX
  message2.data[4] = 0x01;
  message2.data[5] = 0x8D;
  message2.data[6] = 0x1F;
  message2.data[7] = 0x1F;

mcp2515_bit_modify(CANCTRL, (1<<REQOP2)|(1<<REQOP1)|(1<<REQOP0), 0);

mcp2515_send_message(&message);
Serial.print(message.id);
delay(10);

mcp2515_send_message(&message2);
Serial.print(message2.id);
delay(10);
software_Reset();

}
void software_Reset() // Restarts program from beginning but does not reset the peripherals and registers
{
asm volatile ("  jmp 0");  
}

I think my problem has something to do with resetting the mcp2525.

Thanks