ok, so i have greyed out the
/**#define set_XLAT_interrupt() TIFR1 |= _BV(TOV1); TIMSK1 = _BV(TOIE1)
and
/**#define enable_XLAT_pulses() TCCR1A = _BV(COM1A1) | _BV(COM1B1)
in the Header File , correct?
i have placed the new XLAT setup in the void setup after TLC.init90 as shown below??
#include "mcp_can.h"
#include <SPI.h>
#include <stdio.h>
#define INT8U unsigned char
INT8U Flag_Recv = 0;
INT8U len = 0;
INT8U buf[8];
char str[20];
#include "Tlc5940.h" // LED DRiver chip Library
int i = 0;
int redArray[] = {0,3,6,9,12,15,18,21}; // Red LED Array
int greenArray[] = {1,4,7,10,13,16,19,22}; // Green LED Array
int blueArray[] = {2,5,8,11,14,17,20,23}; // Blue LED Array
int maskBit = 1;
void setup()
{
Tlc.init(); // Initialise TLC LED Driver Chip
TIFR1 |= _BV(TOV1);
TIMSK1 = _BV(TOIE1);
CAN.begin(CAN_500KBPS); // init can bus : baudrate = 500k
attachInterrupt(0, MCP2515_ISR, FALLING); // start interrupt
}
void MCP2515_ISR()
{
Flag_Recv = 1;
}
void loop()
{
Flag_Recv = 0; // clear flag
CAN.readMsgBuf(&len, buf); // Recieve CAN Message
maskBit = 1; // Start with Bit 00000001
for (i=0; i<8; i=i+1){
if ((255 & maskBit) > 0) {
Tlc.set(redArray [i], 1000); // Write Red LED Bit ON
Tlc.set(greenArray [i],0 ); // Write Green LED Bit ON
Tlc.set(blueArray [i],0 ); // Write Blue LED Bit ON
Tlc.update(); // Update the LED Driver Chip
}
else{
Tlc.set(redArray [i], 0); // Write Red LED Bit OFF
Tlc.set(greenArray [i], 0); // Write Green LED Bit OFF
Tlc.set(blueArray [i], 0); // Write Blue LED Bit OFF
Tlc.update(); // Upadte the LED Driver Chip
}
maskBit = maskBit << 1; // Next Bit to check
}
}
and do i need to change anything on the interupt?
Thankyou soo much for all of your help so far 
Rich