Arrays and framebuffers


hi all,


i need little code isn't doing want reliably.

aim: allow arduino accept stream of data creates frames (as in, video frames, if like) of data can played out rgb leds

so code works degree -- gets bit of miss.

i write data on serial this

code: [select]
<data>end+

end+ denotes end of frame - should write temporary buffer in framebuffer.

the framebuffer large buffer want fill frames of data played out leds

i apologise profusely if code horribly messy.


code: [select]


//setup software serial buffer
const int buffersize = 6;
char buff[num_leds*3*buffersize];
int buffpos = 0;
char buffchar;

//stuff compare to
char codeframe[4] = "end";
char codecheck[4];

const int fbuffsize = 6;
char fbuff[num_leds*3*fbuffsize];
int fbuffpos = 0;

void setup ()
{
  serial.begin (115200);

  //clear buffers
  memset(fbuff, '0', sizeof(fbuff));
  memset(buff, '0', sizeof(buff));
}

void loop()
{
  while (serial.available() > 0) {
    buffchar = serial.read();
    if (buffchar == '+') {
      //copy last 4 characters codecheck variable
      memcpy(codecheck, buff + (buffpos-3), 4);
      //check see if codecheck compares codeframe variable (is end of frame code?)
      if (!memcmp(codecheck, codeframe, 3)) {
        //clear section of framebuffer want use , write it
        memset(fbuff+((fbuffpos%fbuffsize)*(num_leds*3)), '0', (num_leds*3));
        memcpy(fbuff+((fbuffpos%fbuffsize)*(num_leds*3)), buff, (num_leds*3));
        //clear serial buffer
        memset(buff, 0, sizeof(buff));
        //move serial buffer start again
        buffpos = 0;
        //clear codecheck variable
        memset(codecheck, 0, sizeof(codecheck));
        //move framebuffer position next slot
        fbuffpos++;
        serial.println(fbuffpos);
        serial.println(fbuff);
      } else {
      //if turns out wasn't end frame code write buffer
      buff[buffpos] = buffchar;
      buffpos++;
      serial.println(buffchar);
      serial.println(" addded buffer");
    }
    } else {
     //write character buffer
      buff[buffpos] = buffchar;
      buffpos++;
      serial.println(buffchar);
      serial.println(" addded buffer");
      }
    }
   


  //update leds
  fastled.show();
}


(...)
so code works degree -- gets bit of miss.
(...)


what mean this? have example?


Arduino Forum > Using Arduino > Programming Questions > Arrays and framebuffers


arduino

Comments

Popular posts from this blog

Connecting Raspberry Pi 2 to P10(1R)-V706 LED Dot Matrix - Raspberry Pi Forums

TypeError: <unknown> is not a numpy array - Raspberry Pi Forums

datso and removing imagetitle - Joomla! Forum - community, help and support