#include "image.h" #include "fonts.h" Image::Image() { } void Image::serialPrintInt(uint16_t source) { for(uint8_t i = 0; i < 16; i++) Serial.print((source & (1 << i)) > 0); } void Image::init() { flipdot.init(); //sets pin modes etc. flag_updating=false; update_counter=0; updateDelay=10; resetOrder(true); } uint8_t Image::getW() { return COLUMNS; } uint8_t Image::getH() { return ROWS; } void Image::setBuffer_solid(bool set) { for (uint8_t x=0;x>yoffset); backBuffer[bufferxpos]|= addBuffer; Serial.print("Buffer at "); Serial.print(bufferxpos); Serial.print(" add ");Serial.print(addBuffer,2); Serial.print(" result="); Serial.println(backBuffer[bufferxpos],2); bufferxpos++; //TODO: do not increment when font column is empty } } Serial.println("Finished Text"); } void Image::setBuffer_Image1() //Bumblebee { backBuffer[0]=0b1110000000000000; backBuffer[1]=0b0000000000000000; backBuffer[2]=0b0000000000000000; backBuffer[3]=0b0100000000000000; backBuffer[4]=0b1000000000000000; backBuffer[5]=0b0000011000000000; backBuffer[6]=0b0000111000000000; backBuffer[7]=0b0001110000000000; backBuffer[8]=0b1111000000000000; backBuffer[9]=0b1111100000110000; backBuffer[10]=0b0000111001110000; backBuffer[11]=0b1000000111100000; backBuffer[12]=0b0100000001110000; backBuffer[13]=0b0000000000110000; backBuffer[14]=0b0000000000000000; backBuffer[15]=0b1110000000000000; backBuffer[16]=0b0001000000000000; backBuffer[17]=0b0000000000000000; backBuffer[18]=0b0000000000000000; backBuffer[19]=0b1100000000000000; backBuffer[20]=0b0000000000000000; backBuffer[21]=0b1100000000000000; backBuffer[22]=0b0000000000000000; backBuffer[23]=0b0000000000000011; backBuffer[24]=0b1110000000000111; backBuffer[25]=0b0000000000001111; backBuffer[26]=0b0000000000011111; backBuffer[27]=0b0100000000011111; backBuffer[28]=0b1000000000001111; backBuffer[29]=0b0000000000000111; backBuffer[30]=0b1000000000000111; backBuffer[31]=0b0000000000001111; backBuffer[32]=0b0000000000001111; backBuffer[33]=0b1000000000011111; backBuffer[34]=0b0000000000011111; backBuffer[35]=0b1000000000011111; backBuffer[36]=0b0000000000001111; backBuffer[37]=0b0000000000000111; backBuffer[38]=0b0000000000000111; backBuffer[39]=0b0000000000001111; backBuffer[40]=0b1100000000001111; backBuffer[41]=0b0000000000000111; backBuffer[42]=0b0000000000000011; backBuffer[43]=0b0000000000000001; backBuffer[44]=0b0100000000000000; backBuffer[45]=0b1000000000000000; backBuffer[46]=0b0000000000000000; backBuffer[47]=0b0000000000000000; backBuffer[48]=0b1110000000000000; backBuffer[49]=0b0000000000000000; backBuffer[50]=0b0000000000000000; backBuffer[51]=0b1100000000000000; backBuffer[52]=0b0000000000000000; backBuffer[53]=0b0000000000000000; backBuffer[54]=0b0110000000000000; backBuffer[55]=0b1000000000000000; backBuffer[56]=0b0000000000110000; backBuffer[57]=0b0000000001111000; backBuffer[58]=0b0000000000111100; backBuffer[59]=0b1100000001111100; backBuffer[60]=0b0010000000111000; backBuffer[61]=0b0000000000000000; backBuffer[62]=0b0000000000000000; backBuffer[63]=0b0000000000000000; backBuffer[64]=0b0000001110000000; backBuffer[65]=0b1100001110000000; backBuffer[66]=0b0000011110000000; backBuffer[67]=0b0000111100000000; backBuffer[68]=0b1111111000000000; backBuffer[69]=0b0110111000001100; backBuffer[70]=0b0010001110011100; backBuffer[71]=0b0001000011111100; backBuffer[72]=0b0000000001111100; backBuffer[73]=0b1000000000011110; backBuffer[74]=0b0000000000000000; flag_updating=true; //make update run } void Image::setBuffer_Image2() //CTDO { backBuffer[0]=0b0000000000000000; backBuffer[1]=0b0000000000000000; backBuffer[2]=0b0000000000000000; backBuffer[3]=0b0000000000000000; backBuffer[4]=0b0000000000000000; backBuffer[5]=0b0000000000000000; backBuffer[6]=0b0000000000000000; backBuffer[7]=0b0000011110000000; backBuffer[8]=0b0011111111000000; backBuffer[9]=0b0111111111100000; backBuffer[10]=0b1111110111110000; backBuffer[11]=0b1110000000111000; backBuffer[12]=0b1110000000111100; backBuffer[13]=0b1110000000111100; backBuffer[14]=0b1110000001111000; backBuffer[15]=0b1111000000110000; backBuffer[16]=0b0110000000000000; backBuffer[17]=0b0000000000000000; backBuffer[18]=0b0000000000000000; backBuffer[19]=0b0000000000000000; backBuffer[20]=0b0000000000000000; backBuffer[21]=0b0110000000000000; backBuffer[22]=0b1111000000000000; backBuffer[23]=0b1110000000000000; backBuffer[24]=0b1110000000001100; backBuffer[25]=0b1110000011111110; backBuffer[26]=0b1111111111111110; backBuffer[27]=0b1111111111111100; backBuffer[28]=0b1111111111000000; backBuffer[29]=0b1110000000000000; backBuffer[30]=0b1110000000000000; backBuffer[31]=0b1110000000000000; backBuffer[32]=0b1111000000000000; backBuffer[33]=0b0110000000000000; backBuffer[34]=0b0000000000000000; backBuffer[35]=0b0000000000000000; backBuffer[36]=0b0000000000000000; backBuffer[37]=0b0000000000000000; backBuffer[38]=0b0000000000000000; backBuffer[39]=0b0110000000000000; backBuffer[40]=0b1111000000011000; backBuffer[41]=0b1111111111111100; backBuffer[42]=0b1111111111111110; backBuffer[43]=0b1111111111111110; backBuffer[44]=0b1111000011111111; backBuffer[45]=0b1111000000000111; backBuffer[46]=0b1111000000000111; backBuffer[47]=0b0111000000000111; backBuffer[48]=0b0111000000000011; backBuffer[49]=0b0111100000000111; backBuffer[50]=0b0011100000011111; backBuffer[51]=0b0001111111111110; backBuffer[52]=0b0000111111111100; backBuffer[53]=0b0000011111110000; backBuffer[54]=0b0000001110000000; backBuffer[55]=0b0000000000000000; backBuffer[56]=0b0000000000000000; backBuffer[57]=0b0000000000000000; backBuffer[58]=0b0000000000000000; backBuffer[59]=0b0000000000000000; backBuffer[60]=0b0000000000000000; backBuffer[61]=0b0000001111000000; backBuffer[62]=0b0000111111100000; backBuffer[63]=0b0001111111110000; backBuffer[64]=0b0001111111111000; backBuffer[65]=0b0011110000111100; backBuffer[66]=0b0011100000011100; backBuffer[67]=0b0111110000011100; backBuffer[68]=0b0111100000011110; backBuffer[69]=0b0011111001111100; backBuffer[70]=0b0001111111111000; backBuffer[71]=0b0000111111110000; backBuffer[72]=0b0000011111100000; backBuffer[73]=0b0000000000000000; backBuffer[74]=0b0000000000000000; flag_updating=true; //make update run } void Image::setBuffer_Image3() //23:24 { backBuffer[0]=0b1111111111111111; backBuffer[1]=0b1111111111111111; backBuffer[2]=0b1111111111111111; backBuffer[3]=0b1111111111111111; backBuffer[4]=0b1111111111111111; backBuffer[5]=0b1111111111111111; backBuffer[6]=0b1111111111111111; backBuffer[7]=0b1111111111111111; backBuffer[8]=0b1111111111111111; backBuffer[9]=0b1111111111111111; backBuffer[10]=0b1111111111111111; backBuffer[11]=0b1111111111111111; backBuffer[12]=0b1111111111111111; backBuffer[13]=0b1111111111111111; backBuffer[14]=0b1101111111000111; backBuffer[15]=0b1101111110000111; backBuffer[16]=0b1001111100000111; backBuffer[17]=0b1001111000100111; backBuffer[18]=0b1000110001100111; backBuffer[19]=0b1100000011100111; backBuffer[20]=0b1100000111100111; backBuffer[21]=0b1111111111111111; backBuffer[22]=0b1111111111111111; backBuffer[23]=0b1111111111111111; backBuffer[24]=0b1111111111101111; backBuffer[25]=0b1101111111101111; backBuffer[26]=0b1101100111100111; backBuffer[27]=0b1001100111100111; backBuffer[28]=0b1001100111100111; backBuffer[29]=0b1001100011000111; backBuffer[30]=0b1100000000001111; backBuffer[31]=0b1100011000001111; backBuffer[32]=0b1111111100111111; backBuffer[33]=0b1111111111111111; backBuffer[34]=0b1111111111111111; backBuffer[35]=0b1111111111111111; backBuffer[36]=0b1111000111000111; backBuffer[37]=0b1111000111000111; backBuffer[38]=0b1111111111111111; backBuffer[39]=0b1111111111111111; backBuffer[40]=0b1111111111111111; backBuffer[41]=0b1111111111111111; backBuffer[42]=0b1101111111000111; backBuffer[43]=0b1101111110000111; backBuffer[44]=0b1001111100000111; backBuffer[45]=0b1001111000100111; backBuffer[46]=0b1000110001100111; backBuffer[47]=0b1100000011100111; backBuffer[48]=0b1100000111100111; backBuffer[49]=0b1111111111111111; backBuffer[50]=0b1111111111111111; backBuffer[51]=0b1111111111111111; backBuffer[52]=0b1111111100011111; backBuffer[53]=0b1111110000011111; backBuffer[54]=0b1111000110011111; backBuffer[55]=0b1110011110011111; backBuffer[56]=0b1000111110011111; backBuffer[57]=0b1000000000000111; backBuffer[58]=0b1000000000000111; backBuffer[59]=0b1111111110011111; backBuffer[60]=0b1111111110011111; backBuffer[61]=0b1111111111111111; backBuffer[62]=0b1111111111111111; backBuffer[63]=0b1111111111111111; backBuffer[64]=0b1111111111111111; backBuffer[65]=0b1111111111111111; backBuffer[66]=0b1111111111111111; backBuffer[67]=0b1111111111111111; backBuffer[68]=0b1111111111111111; backBuffer[69]=0b1111111111111111; backBuffer[70]=0b1111111111111111; backBuffer[71]=0b1111111111111111; backBuffer[72]=0b1111111111111111; backBuffer[73]=0b1111111111111111; backBuffer[74]=0b1111111111111111; flag_updating=true; //make update run } void Image::setBuffer_Image4() //Linux { backBuffer[0]=0b0000000000000000; backBuffer[1]=0b0000000000000000; backBuffer[2]=0b0000000000000000; backBuffer[3]=0b0000000000000000; backBuffer[4]=0b0000000000000000; backBuffer[5]=0b0000000000000000; backBuffer[6]=0b0000000011000000; backBuffer[7]=0b0000011111100000; backBuffer[8]=0b0011111111110000; backBuffer[9]=0b0111111111110000; backBuffer[10]=0b0111110011110000; backBuffer[11]=0b0011000011110000; backBuffer[12]=0b0000000011110000; backBuffer[13]=0b0000000011110000; backBuffer[14]=0b0000000001110000; backBuffer[15]=0b0000000000100000; backBuffer[16]=0b0000000000000000; backBuffer[17]=0b0000000000000000; backBuffer[18]=0b0000000000000000; backBuffer[19]=0b0000000000011000; backBuffer[20]=0b0000000001111100; backBuffer[21]=0b0001000011111000; backBuffer[22]=0b0011100111110000; backBuffer[23]=0b0011100011000000; backBuffer[24]=0b0001000000000000; backBuffer[25]=0b0000000000000000; backBuffer[26]=0b0000000000000000; backBuffer[27]=0b0000000000000000; backBuffer[28]=0b0000000000011100; backBuffer[29]=0b0000000111111110; backBuffer[30]=0b0000001111111110; backBuffer[31]=0b0000000111111100; backBuffer[32]=0b0000000111100000; backBuffer[33]=0b0000000111000000; backBuffer[34]=0b0000000111000000; backBuffer[35]=0b0000000111000000; backBuffer[36]=0b0000000111111000; backBuffer[37]=0b0000000011111100; backBuffer[38]=0b0000000001111110; backBuffer[39]=0b0000000000011100; backBuffer[40]=0b0000000000000000; backBuffer[41]=0b0000000000000000; backBuffer[42]=0b0000000000000000; backBuffer[43]=0b0000001111110000; backBuffer[44]=0b0000011111111000; backBuffer[45]=0b0000011111111100; backBuffer[46]=0b0000001100111100; backBuffer[47]=0b0000000000111000; backBuffer[48]=0b0000000000111000; backBuffer[49]=0b0000000000111000; backBuffer[50]=0b0000000001110000; backBuffer[51]=0b0000000011110000; backBuffer[52]=0b0000001111100000; backBuffer[53]=0b0000011111000000; backBuffer[54]=0b0000001100000000; backBuffer[55]=0b0000000000001000; backBuffer[56]=0b0000011000011100; backBuffer[57]=0b0000111100011100; backBuffer[58]=0b0000111100011100; backBuffer[59]=0b0000011110111000; backBuffer[60]=0b0000001111111000; backBuffer[61]=0b0000000011110000; backBuffer[62]=0b0000000011110000; backBuffer[63]=0b0000000111110000; backBuffer[64]=0b0000001111111000; backBuffer[65]=0b0000011110111100; backBuffer[66]=0b0000011100011110; backBuffer[67]=0b0000001000001110; backBuffer[68]=0b0000000000000100; backBuffer[69]=0b0000000000000000; backBuffer[70]=0b0000000000000000; backBuffer[71]=0b0000000000000000; backBuffer[72]=0b0000000000000000; backBuffer[73]=0b0000000000000000; backBuffer[74]=0b0000000000000000; flag_updating=true; //make update run } void Image::setBuffer_Image5() //Datamatrix ctdo.de { backBuffer[0]=0b1111111111111111; backBuffer[1]=0b1111111111111111; backBuffer[2]=0b1111111111111111; backBuffer[3]=0b1111111111111111; backBuffer[4]=0b1111111111111111; backBuffer[5]=0b1111111111111111; backBuffer[6]=0b1111111111111111; backBuffer[7]=0b1111111111111111; backBuffer[8]=0b1111111111111111; backBuffer[9]=0b1111111111111111; backBuffer[10]=0b1111111111111111; backBuffer[11]=0b1111111111111111; backBuffer[12]=0b1111111111111111; backBuffer[13]=0b1111111111111111; backBuffer[14]=0b1111111111111111; backBuffer[15]=0b1111111111111111; backBuffer[16]=0b1111111111111111; backBuffer[17]=0b1111111111111111; backBuffer[18]=0b1111111111111111; backBuffer[19]=0b1111111111111111; backBuffer[20]=0b1111111111111111; backBuffer[21]=0b1111111111111111; backBuffer[22]=0b1111111111111111; backBuffer[23]=0b1111111111111111; backBuffer[24]=0b1111111111111111; backBuffer[25]=0b1111111111111111; backBuffer[26]=0b1111111111111111; backBuffer[27]=0b1111111111111111; backBuffer[28]=0b1111111111111111; backBuffer[29]=0b1111111111111111; backBuffer[30]=0b1111111111111111; backBuffer[31]=0b1000000000000001; backBuffer[32]=0b1000100101100111; backBuffer[33]=0b1011111100110001; backBuffer[34]=0b1010110011001011; backBuffer[35]=0b1011010001001101; backBuffer[36]=0b1000000001011011; backBuffer[37]=0b1001110110001001; backBuffer[38]=0b1001101101011011; backBuffer[39]=0b1010011100011101; backBuffer[40]=0b1010111111001111; backBuffer[41]=0b1010110101110001; backBuffer[42]=0b1001100110110111; backBuffer[43]=0b1000111010011101; backBuffer[44]=0b1010101010101011; backBuffer[45]=0b1111111111111111; backBuffer[46]=0b1111111111111111; backBuffer[47]=0b1111111111111111; backBuffer[48]=0b1111111111111111; backBuffer[49]=0b1111111111111111; backBuffer[50]=0b1111111111111111; backBuffer[51]=0b1111111111111111; backBuffer[52]=0b1111111111111111; backBuffer[53]=0b1111111111111111; backBuffer[54]=0b1111111111111111; backBuffer[55]=0b1111111111111111; backBuffer[56]=0b1111111111111111; backBuffer[57]=0b1111111111111111; backBuffer[58]=0b1111111111111111; backBuffer[59]=0b1111111111111111; backBuffer[60]=0b1111111111111111; backBuffer[61]=0b1111111111111111; backBuffer[62]=0b1111111111111111; backBuffer[63]=0b1111111111111111; backBuffer[64]=0b1111111111111111; backBuffer[65]=0b1111111111111111; backBuffer[66]=0b1111111111111111; backBuffer[67]=0b1111111111111111; backBuffer[68]=0b1111111111111111; backBuffer[69]=0b1111111111111111; backBuffer[70]=0b1111111111111111; backBuffer[71]=0b1111111111111111; backBuffer[72]=0b1111111111111111; backBuffer[73]=0b1111111111111111; backBuffer[74]=0b1111111111111111; flag_updating=true; //make update run } void Image::setBuffer_Image6() //13:37 { backBuffer[0]=0b1111111111111111; backBuffer[1]=0b1111111111111111; backBuffer[2]=0b1111111111111111; backBuffer[3]=0b1111111111111111; backBuffer[4]=0b1111111111111111; backBuffer[5]=0b1111111111111111; backBuffer[6]=0b1111111111111111; backBuffer[7]=0b1111111111111111; backBuffer[8]=0b1111111111111111; backBuffer[9]=0b1111111111111111; backBuffer[10]=0b1111111111111111; backBuffer[11]=0b1111111111111111; backBuffer[12]=0b1100111111100111; backBuffer[13]=0b1100111111110111; backBuffer[14]=0b1100111111110011; backBuffer[15]=0b1100000000000011; backBuffer[16]=0b1100000000000011; backBuffer[17]=0b1100000000000011; backBuffer[18]=0b1100111111111111; backBuffer[19]=0b1100111111111111; backBuffer[20]=0b1111111111111111; backBuffer[21]=0b1111111111111111; backBuffer[22]=0b1111111111111111; backBuffer[23]=0b1110111111111111; backBuffer[24]=0b1110111111110111; backBuffer[25]=0b1100111111110111; backBuffer[26]=0b1100111001110011; backBuffer[27]=0b1100111001110011; backBuffer[28]=0b1100111001110011; backBuffer[29]=0b1110000000000111; backBuffer[30]=0b1110000010000111; backBuffer[31]=0b1111000111001111; backBuffer[32]=0b1111111111111111; backBuffer[33]=0b1111111111111111; backBuffer[34]=0b1111111111111111; backBuffer[35]=0b1111111111111111; backBuffer[36]=0b1100011100011111; backBuffer[37]=0b1100011100011111; backBuffer[38]=0b1100011100011111; backBuffer[39]=0b1111111111111111; backBuffer[40]=0b1111111111111111; backBuffer[41]=0b1111111111111111; backBuffer[42]=0b1110111111111111; backBuffer[43]=0b1110111111110111; backBuffer[44]=0b1100111111110111; backBuffer[45]=0b1100111001110011; backBuffer[46]=0b1100111001110011; backBuffer[47]=0b1100111001110011; backBuffer[48]=0b1110000000000111; backBuffer[49]=0b1110000010000111; backBuffer[50]=0b1111000111001111; backBuffer[51]=0b1111111111111111; backBuffer[52]=0b1111111111111111; backBuffer[53]=0b1111111111111111; backBuffer[54]=0b1111111111110011; backBuffer[55]=0b1111111111110011; backBuffer[56]=0b1101111111110011; backBuffer[57]=0b1100001111110011; backBuffer[58]=0b1100000011110011; backBuffer[59]=0b1111000000110011; backBuffer[60]=0b1111111000000011; backBuffer[61]=0b1111111110000011; backBuffer[62]=0b1111111111100011; backBuffer[63]=0b1111111111111111; backBuffer[64]=0b1111111111111111; backBuffer[65]=0b1111111111111111; backBuffer[66]=0b1111111111111111; backBuffer[67]=0b1111111111111111; backBuffer[68]=0b1111111111111111; backBuffer[69]=0b1111111111111111; backBuffer[70]=0b1111111111111111; backBuffer[71]=0b1111111111111111; backBuffer[72]=0b1111111111111111; backBuffer[73]=0b1111111111111111; backBuffer[74]=0b1111111111111111; flag_updating=true; //make update run } void Image::setBuffer_Image7() //13:59 { backBuffer[0]=0b1111111111111111; backBuffer[1]=0b1111111111111111; backBuffer[2]=0b1111111111111111; backBuffer[3]=0b1111111111111111; backBuffer[4]=0b1111111111111111; backBuffer[5]=0b1111111111111111; backBuffer[6]=0b1111111111111111; backBuffer[7]=0b1111111111111111; backBuffer[8]=0b1111111111111111; backBuffer[9]=0b1111111111111111; backBuffer[10]=0b1111111111111111; backBuffer[11]=0b1111111111111111; backBuffer[12]=0b1110011111110011; backBuffer[13]=0b1110111111110011; backBuffer[14]=0b1100111111110011; backBuffer[15]=0b1100000000000011; backBuffer[16]=0b1100000000000011; backBuffer[17]=0b1100000000000011; backBuffer[18]=0b1111111111110011; backBuffer[19]=0b1111111111110011; backBuffer[20]=0b1111111111111111; backBuffer[21]=0b1111111111111111; backBuffer[22]=0b1111111111111111; backBuffer[23]=0b1111111111110111; backBuffer[24]=0b1110111111110111; backBuffer[25]=0b1110111111110011; backBuffer[26]=0b1100111001110011; backBuffer[27]=0b1100111001110011; backBuffer[28]=0b1100111001110011; backBuffer[29]=0b1110000000000111; backBuffer[30]=0b1110000100000111; backBuffer[31]=0b1111001110001111; backBuffer[32]=0b1111111111111111; backBuffer[33]=0b1111111111111111; backBuffer[34]=0b1111111111111111; backBuffer[35]=0b1111111111111111; backBuffer[36]=0b1111100011100011; backBuffer[37]=0b1111100011100011; backBuffer[38]=0b1111100011100011; backBuffer[39]=0b1111111111111111; backBuffer[40]=0b1111111111111111; backBuffer[41]=0b1111111111111111; backBuffer[42]=0b1111111111111111; backBuffer[43]=0b1100000011110111; backBuffer[44]=0b1100000011110111; backBuffer[45]=0b1100110011110011; backBuffer[46]=0b1100110011110011; backBuffer[47]=0b1100110011110011; backBuffer[48]=0b1100110001100111; backBuffer[49]=0b1100111000000111; backBuffer[50]=0b1111111100001111; backBuffer[51]=0b1111111111111111; backBuffer[52]=0b1111111111111111; backBuffer[53]=0b1111111111111111; backBuffer[54]=0b1111100011111111; backBuffer[55]=0b1110000001110111; backBuffer[56]=0b1110000001110111; backBuffer[57]=0b1100111100110011; backBuffer[58]=0b1100111100110011; backBuffer[59]=0b1100111101110011; backBuffer[60]=0b1110011001100111; backBuffer[61]=0b1110000000000111; backBuffer[62]=0b1111000000001111; backBuffer[63]=0b1111111111111111; backBuffer[64]=0b1111111111111111; backBuffer[65]=0b1111111111111111; backBuffer[66]=0b1111111111111111; backBuffer[67]=0b1111111111111111; backBuffer[68]=0b1111111111111111; backBuffer[69]=0b1111111111111111; backBuffer[70]=0b1111111111111111; backBuffer[71]=0b1111111111111111; backBuffer[72]=0b1111111111111111; backBuffer[73]=0b1111111111111111; backBuffer[74]=0b1111111111111111; flag_updating=true; //make update run } void Image::setBuffer_Image8() //14:00 { backBuffer[0]=0b1111111111111111; backBuffer[1]=0b1111111111111111; backBuffer[2]=0b1111111111111111; backBuffer[3]=0b1111111111111111; backBuffer[4]=0b1111111111111111; backBuffer[5]=0b1111111111111111; backBuffer[6]=0b1111111111111111; backBuffer[7]=0b1111111111111111; backBuffer[8]=0b1111111111111111; backBuffer[9]=0b1111111111111111; backBuffer[10]=0b1111111111111111; backBuffer[11]=0b1111111111111111; backBuffer[12]=0b1110011111110011; backBuffer[13]=0b1110111111110011; backBuffer[14]=0b1100111111110011; backBuffer[15]=0b1100000000000011; backBuffer[16]=0b1100000000000011; backBuffer[17]=0b1100000000000011; backBuffer[18]=0b1111111111110011; backBuffer[19]=0b1111111111110011; backBuffer[20]=0b1111111111111111; backBuffer[21]=0b1111111111111111; backBuffer[22]=0b1111111111111111; backBuffer[23]=0b1111111100011111; backBuffer[24]=0b1111111000011111; backBuffer[25]=0b1111100010011111; backBuffer[26]=0b1111001110011111; backBuffer[27]=0b1110011110011111; backBuffer[28]=0b1100011110011111; backBuffer[29]=0b1100000000000011; backBuffer[30]=0b1100000000000011; backBuffer[31]=0b1111111110011111; backBuffer[32]=0b1111111110011111; backBuffer[33]=0b1111111111111111; backBuffer[34]=0b1111111111111111; backBuffer[35]=0b1111111111111111; backBuffer[36]=0b1111100011100011; backBuffer[37]=0b1111100011100011; backBuffer[38]=0b1111100011100011; backBuffer[39]=0b1111111111111111; backBuffer[40]=0b1111111111111111; backBuffer[41]=0b1111111111111111; backBuffer[42]=0b1111100000011111; backBuffer[43]=0b1111000000001111; backBuffer[44]=0b1110000000000111; backBuffer[45]=0b1100111111110011; backBuffer[46]=0b1100111111110011; backBuffer[47]=0b1100111111110011; backBuffer[48]=0b1110011111100111; backBuffer[49]=0b1110000000000111; backBuffer[50]=0b1111000000001111; backBuffer[51]=0b1111110000111111; backBuffer[52]=0b1111111111111111; backBuffer[53]=0b1111111111111111; backBuffer[54]=0b1111100000011111; backBuffer[55]=0b1111000000001111; backBuffer[56]=0b1110000000000111; backBuffer[57]=0b1100111111110011; backBuffer[58]=0b1100111111110011; backBuffer[59]=0b1100111111110011; backBuffer[60]=0b1110011111100111; backBuffer[61]=0b1110000000000111; backBuffer[62]=0b1111000000001111; backBuffer[63]=0b1111110000111111; backBuffer[64]=0b1111111111111111; backBuffer[65]=0b1111111111111111; backBuffer[66]=0b1111111111111111; backBuffer[67]=0b1111111111111111; backBuffer[68]=0b1111111111111111; backBuffer[69]=0b1111111111111111; backBuffer[70]=0b1111111111111111; backBuffer[71]=0b1111111111111111; backBuffer[72]=0b1111111111111111; backBuffer[73]=0b1111111111111111; backBuffer[74]=0b1111111111111111; flag_updating=true; //make update run } void Image::setBufferColumn(uint8_t _colnum, uint16_t _rowdata) { if (_colnum>=COLUMNS) { Serial.println("colnum too high"); }else{ backBuffer[_colnum]=_rowdata; //all white flag_updating=true; //make update run } } void Image::setBuffer_random(uint8_t brightness) { for (uint8_t x=0;x0) { //at least on dot has to be cleared in this column flipdot.setRow(0); flipdot.selectColumnClear(x); if (!flipdot.clearSelectedColumn()) { Serial.println("Error clearing column!"); } lastUpdateMillis=millis(); frontBuffer[x]=0; } }else{ //odd counter numbers are for setting uint16_t _colSet=backBuffer[x]& ~frontBuffer[x]; if (!optimizeSet || _colSet>0) { //at least on dot has to be set in this column (if optimize is enabled) flipdot.selectColumnSet(x); //lower column number is on the left if (!optimizeSet) { flipdot.setRow(backBuffer[x]); //flip all set dots in this column }else{ flipdot.setRow(_colSet); //flip only currently not set dots in this column that have to be set } if (!flipdot.setSelectedDot()) { Serial.println("Error setting dots!"); } lastUpdateMillis=millis(); frontBuffer[x]=backBuffer[x]; //flip current column in buffer } } update_counter++; //next column unsigned long _duration=millis()-functionStartMillis; //how long it took to shift data and flip dots in this update updateDuration=max(updateDuration,_duration); //store maximum value if (update_counter/2>=getW()) { //reached last column flag_updating=false; update_counter=0; flag_redraw=false; return finished; //finished } return updating; //not finished } void Image::loop_testDots() { static bool init=false; if (!init) { flipdot.setRow(0); Serial.println("Clearing Display"); for (int l=0;l