想实现mixly这种效果
用最原始的办法实现了8x8二维数组变成,一个8位数组,然后发送到AIP1640驱动芯片点亮8x8LED阵列.
void draw_fullmap()
{uchar x1,x2,x3,x4,x5,x6,x7,x8,y1,y2,y3,y4,y5,y6,y7,y8;
uint code fullmap[8][8]={{0,1,1,0,1,1,0,0},
{1,1,1,0,1,1,1,0},
{1,1,1,1,1,1,1,0},
{1,1,1,1,1,1,1,0},
{0,1,1,1,1,1,0,0},
{0,0,1,1,1,0,0,0},
{0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0}};
x1=fullmap[0][0]*128;
x2=fullmap[0][1]*64;
x3=fullmap[0][2]*32;
x4=fullmap[0][3]*16;
x5=fullmap[0][4]*8;
x6=fullmap[0][5]*4;
x7=fullmap[0][6]*2;
x8=fullmap[0][7]*1;
y1=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[1][0]*128;
x2=fullmap[1][1]*64;
x3=fullmap[1][2]*32;
x4=fullmap[1][3]*16;
x5=fullmap[1][4]*8;
x6=fullmap[1][5]*4;
x7=fullmap[1][6]*2;
x8=fullmap[1][7]*1;
y2=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[2][0]*128;
x2=fullmap[2][1]*64;
x3=fullmap[2][2]*32;
x4=fullmap[2][3]*16;
x5=fullmap[2][4]*8;
x6=fullmap[2][5]*4;
x7=fullmap[2][6]*2;
x8=fullmap[2][7]*1;
y3=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[3][0]*128;
x2=fullmap[3][1]*64;
x3=fullmap[3][2]*32;
x4=fullmap[3][3]*16;
x5=fullmap[3][4]*8;
x6=fullmap[3][5]*4;
x7=fullmap[3][6]*2;
x8=fullmap[3][7]*1;
y4=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[4][0]*128;
x2=fullmap[4][1]*64;
x3=fullmap[4][2]*32;
x4=fullmap[4][3]*16;
x5=fullmap[4][4]*8;
x6=fullmap[4][5]*4;
x7=fullmap[4][6]*2;
x8=fullmap[4][7]*1;
y5=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[5][0]*128;
x2=fullmap[5][1]*64;
x3=fullmap[5][2]*32;
x4=fullmap[5][3]*16;
x5=fullmap[5][4]*8;
x6=fullmap[5][5]*4;
x7=fullmap[5][6]*2;
x8=fullmap[5][7]*1;
y6=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[6][0]*128;
x2=fullmap[6][1]*64;
x3=fullmap[6][2]*32;
x4=fullmap[6][3]*16;
x5=fullmap[6][4]*8;
x6=fullmap[6][5]*4;
x7=fullmap[6][6]*2;
x8=fullmap[6][7]*1;
y7=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[7][0]*128;
x2=fullmap[7][1]*64;
x3=fullmap[7][2]*32;
x4=fullmap[7][3]*16;
x5=fullmap[7][4]*8;
x6=fullmap[7][5]*4;
x7=fullmap[7][6]*2;
x8=fullmap[7][7]*1;
y8=x1+x2+x3+x4+x5+x6+x7+x8;
AIP1640_draw(0,y1);
AIP1640_draw(1,y2);
AIP1640_draw(2,y3);
AIP1640_draw(3,y4);
AIP1640_draw(4,y5);
AIP1640_draw(5,y6);
AIP1640_draw(6,y7);
AIP1640_draw(7,y8);
}
但是重复代码太多,x1~x8要多次复用,不知道该如何循环。
用最原始的办法实现了8x8二维数组变成,一个8位数组,然后发送到AIP1640驱动芯片点亮8x8LED阵列.
void draw_fullmap()
{uchar x1,x2,x3,x4,x5,x6,x7,x8,y1,y2,y3,y4,y5,y6,y7,y8;
uint code fullmap[8][8]={{0,1,1,0,1,1,0,0},
{1,1,1,0,1,1,1,0},
{1,1,1,1,1,1,1,0},
{1,1,1,1,1,1,1,0},
{0,1,1,1,1,1,0,0},
{0,0,1,1,1,0,0,0},
{0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0}};
x1=fullmap[0][0]*128;
x2=fullmap[0][1]*64;
x3=fullmap[0][2]*32;
x4=fullmap[0][3]*16;
x5=fullmap[0][4]*8;
x6=fullmap[0][5]*4;
x7=fullmap[0][6]*2;
x8=fullmap[0][7]*1;
y1=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[1][0]*128;
x2=fullmap[1][1]*64;
x3=fullmap[1][2]*32;
x4=fullmap[1][3]*16;
x5=fullmap[1][4]*8;
x6=fullmap[1][5]*4;
x7=fullmap[1][6]*2;
x8=fullmap[1][7]*1;
y2=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[2][0]*128;
x2=fullmap[2][1]*64;
x3=fullmap[2][2]*32;
x4=fullmap[2][3]*16;
x5=fullmap[2][4]*8;
x6=fullmap[2][5]*4;
x7=fullmap[2][6]*2;
x8=fullmap[2][7]*1;
y3=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[3][0]*128;
x2=fullmap[3][1]*64;
x3=fullmap[3][2]*32;
x4=fullmap[3][3]*16;
x5=fullmap[3][4]*8;
x6=fullmap[3][5]*4;
x7=fullmap[3][6]*2;
x8=fullmap[3][7]*1;
y4=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[4][0]*128;
x2=fullmap[4][1]*64;
x3=fullmap[4][2]*32;
x4=fullmap[4][3]*16;
x5=fullmap[4][4]*8;
x6=fullmap[4][5]*4;
x7=fullmap[4][6]*2;
x8=fullmap[4][7]*1;
y5=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[5][0]*128;
x2=fullmap[5][1]*64;
x3=fullmap[5][2]*32;
x4=fullmap[5][3]*16;
x5=fullmap[5][4]*8;
x6=fullmap[5][5]*4;
x7=fullmap[5][6]*2;
x8=fullmap[5][7]*1;
y6=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[6][0]*128;
x2=fullmap[6][1]*64;
x3=fullmap[6][2]*32;
x4=fullmap[6][3]*16;
x5=fullmap[6][4]*8;
x6=fullmap[6][5]*4;
x7=fullmap[6][6]*2;
x8=fullmap[6][7]*1;
y7=x1+x2+x3+x4+x5+x6+x7+x8;
x1=fullmap[7][0]*128;
x2=fullmap[7][1]*64;
x3=fullmap[7][2]*32;
x4=fullmap[7][3]*16;
x5=fullmap[7][4]*8;
x6=fullmap[7][5]*4;
x7=fullmap[7][6]*2;
x8=fullmap[7][7]*1;
y8=x1+x2+x3+x4+x5+x6+x7+x8;
AIP1640_draw(0,y1);
AIP1640_draw(1,y2);
AIP1640_draw(2,y3);
AIP1640_draw(3,y4);
AIP1640_draw(4,y5);
AIP1640_draw(5,y6);
AIP1640_draw(6,y7);
AIP1640_draw(7,y8);
}
但是重复代码太多,x1~x8要多次复用,不知道该如何循环。