Background processes - Arduino Mega and SeeedStudio CAN shield
I see several options:


Change your code to achieve lower delays on the other functions
Use interrupts at a set frequency to trigger the sending (and maybe the automatic transmission trigger pins, see MCP2515 datasheet, depending on pin use &amp; schematic of your specific shield)
Use a basic scheduler/rtos


It is hard to tell what is going on without the rest of your code, if it is a good idea to try to achieve faster functions.

I am not 100% sure the CAN-lib would will work well in the context of an interrupt.