Shorten SPI.transfer function

Hi i have an arduino mega 2560 and an lcd display, to send a bitmap to the display I convert it first to something like the following

void sendbmp1(){
SPI.transfer(0x40);SPI.transfer(0x00);SPI.transfer(0x00);SPI.transfer(0x00); // Start bitmap command
// 512 bytes below for bitmap (i've deleted a chunk of code so the post wouldnt exceed 9500 characther allowance, the idea is that there is normally 512 bytes similar to the following)
SPI.transfer(0x0C); SPI.transfer(0x07); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00);  SPI.transfer(0x0F); SPI.transfer(0x07); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x01); SPI.transfer(0x04); SPI.transfer(0x01); SPI.transfer(0x02); SPI.transfer(0x02); SPI.transfer(0x08);  SPI.transfer(0x00); SPI.transfer(0x06); SPI.transfer(0x00); SPI.transfer(0x04); SPI.transfer(0x08); SPI.transfer(0x0F); SPI.transfer(0x00); SPI.transfer(0x08); SPI.transfer(0x00); SPI.transfer(0x04); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x08);  SPI.transfer(0x00); SPI.transfer(0x0C); SPI.transfer(0x00); SPI.transfer(0x04); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x08);  SPI.transfer(0x01); SPI.transfer(0x0C); SPI.transfer(0x03); SPI.transfer(0x06); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x08);  SPI.transfer(0x01); SPI.transfer(0x00); SPI.transfer(0x0F); SPI.transfer(0x03); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00);  SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x0C); SPI.transfer(0x01); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00); SPI.transfer(0x00);

SPI.transfer(0x43); // End byte
};

However the code would be much neater (AND SMALLER! :} )

If it could be something like the following,

void setup(){
sendbmp1 (0x0C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x03, 0x04, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x02, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x01, 0x08, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x06, 0x00, 0x04, 0x00, 0x02, 0x00, 0x08, 0x00, 0x06, 0x00, 0x04, 0x01, 0x02, 0x02, 0x08, 0x00, 0x06, 0x00, 0x04, 0x08, 0x0F, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x08, 0x03, 0x06, 0x08, 0x07, 0x00, 0x02, 0x00, 0x00, 0x0E, 0x0F, 0x0F, 0x03, 0x00, 0x02, 0x00, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x01, 0x0C, 0x03, 0x06, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00);
}

void sendbmp1 (char bmp[512])
SPI.transfer(0x40);SPI.transfer(0x00);SPI.transfer(0x00);SPI.transfer(0x00); // Start bitmap command

SPI.transfer(bmp); // send 512 bytes for Bitmap

SPI.transfer(0x43); // End byte

Thanks in advance to anyone who can point out where im going wrong!

I suggest you read up on for loops.

flukey:
Hi i have an arduino mega 2560 and an lcd display, to send a bitmap to the display I convert it first to something like the following…

…Thanks in advance to anyone who can point out where im going wrong!

create an array with the chars you want to transmit:

char sendbmp1[] = {0x0C, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x03, 0x04, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x02, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x01, 0x08, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x01, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0F, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0F, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x06, 0x00, 0x04, 0x00, 0x02, 0x00, 0x08, 0x00, 0x06, 0x00, 0x04, 0x01, 0x02, 0x02, 0x08, 0x00, 0x06, 0x00, 0x04, 0x08, 0x0F, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x08, 0x03, 0x06, 0x08, 0x07, 0x00, 0x02, 0x00, 0x00, 0x0E, 0x0F, 0x0F, 0x03, 0x00, 0x02, 0x00, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x0B, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x01, 0x0C, 0x03, 0x06, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00};

and then use a for loop to send them sequentially:

for (int i = 0; i < sizeof(sendbmp1); i++)
  {
    SPI.transfer(sendbmp1[i]);
  }

you might put the array in PROGMEM to preserve precious RAM and read it line by line

something like done here - http://forum.arduino.cc/index.php?topic=176794.msg1872290#msg1872290 -