📄 main._c
字号:
BLenghtCount=val_lenght;
for(j=0;j<val_lenght;j++)
{
FLenghtCount++;
UniteColorRight(value, UNITEC1,UNITEC2,UNITEC3, UNITEC4, UNITEC5,FLenghtCount);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return;;
}
}
}
}
void UniteColorLeft(uchar da1,uchar da2,uchar da3,uchar da4,uchar da5,uchar da6,uint loop)
{
uint tim,i;//,mode;
// uchar loop1=16,loop2=70;
if(loop>6)
{
// tim=loop;
for(;loop>=6;loop-=6)
{
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
putSPIchar(da5);
DelayNs(50);
putSPIchar(da5);
DelayNs(50);
putSPIchar(da6);
DelayNs(50);
putSPIchar(da6);
DelayNs(50);
}
}
i=0;
if(i<loop){
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
}
if(i+1<loop){
putSPIchar(da2);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
}
if(i+2<loop){
putSPIchar(da3);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
}
if(i+3<loop){
putSPIchar(da4);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
}
if(i+4<loop){
putSPIchar(da5);
DelayNs(50);
putSPIchar(da5);
DelayNs(50);
}
if(i+5<loop){
putSPIchar(da6);
DelayNs(50);
putSPIchar(da6);
DelayNs(50);
}
}
uchar UniteColorMiddleToEdge(uchar da1,uchar da2,uchar da3,uchar da4,uchar da5,uchar da6,uchar mode)
{
uint tim,i,diff,j;
//芯片数为双数, 为单数
HalfLenght=val_lenght/2;
// left =0;
// right=1;
FLenghtCount=1;
BLenghtCount=HalfLenght+1;
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
for(i=1;i<BLenghtCount;i++)
{
putSPIchar(UNLOCKDATA);
DelayNs(50);
putSPIchar(UNLOCKDATA);
DelayNs(50);
}
SendSS(1);
// SendSI(loop1);
if(SpeedDelay(mode & 0x03)) return 1;
// else return 0;
// AllStarRight(da1, da2, da3, da4,mode);
for(i=1;i<BLenghtCount;i++)
{
UniteColorLeft(da1, da2, da3, da4,da5,da6,i);
// left--;
// right++;
// diff=right - left;
FLenghtCount++;
UniteColorRight(da1, da2, da3, da4,da5,da6,FLenghtCount);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return 1;
}
return 0;
}
//从中间向两边。
void UniteColorProcess_2(uchar kind,uchar mode)
{
uchar i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
// GetMiddleColor(value);
if(UniteColorMiddleToEdge(value, UNITEC1,UNITEC2,UNITEC3, UNITEC4, UNITEC5,mode)==1) break;
}
}
}
uchar UniteColorEdgeToMiddle(uchar da1,uchar da2,uchar da3,uchar da4,uchar da5,uchar da6,uchar mode)
{
uint tim,i,diff,j;
//芯片数为双数, 为单数
HalfLenght=val_lenght/2;
// left =0;
// right=1;
FLenghtCount=1;
BLenghtCount=val_lenght-2;
for(i=1;i<=HalfLenght;i++)
{
UniteColorRight(da1, da2, da3, da4,da5,da6,0);
// left--;
// right++;
// diff=right - left;
FLenghtCount++;
UniteColorLeft(da1, da2, da3, da4,da5,da6,i);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return 1;
if(BLenghtCount==1)
{
BLenghtCount=0;
UniteColorRight(da1, da2, da3, da4,da5,da6,0);
// FLenghtCount++;
UniteColorLeft(da1, da2, da3, da4,da5,da6,i+1);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return 1;
return 0;
}
else
BLenghtCount-=2;
}
return 0;
}
//从两边向中间.
void UniteColorProcess_3(uchar kind,uchar mode)
{
uchar i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
// GetMiddleColor(value);
if(UniteColorEdgeToMiddle(value, UNITEC1,UNITEC2,UNITEC3, UNITEC4, UNITEC5,mode)==1) break;
}
}
}
void AllStarProcess(uchar kind,uchar mode)
{
uchar tim,i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
GetMiddleColor(value);
if(AllStar( value, color1, color2, ALLBLACK,mode)==1) return;
}
}
}
void AllStarProcess_1(uchar kind,uchar mode)
{
uchar i,value,j;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
GetMiddleColor(value);
FLenghtCount=0;
BLenghtCount=val_lenght;
for(j=0;j<val_lenght;j++)
{
FLenghtCount++;
AllStarRight(value, color1, color2, ALLBLACK,FLenghtCount);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return;;
}
}
}
}
void AllStarLeft(uchar da1,uchar da2,uchar da3,uchar da4,uint loop)
{
uint tim,i;//,mode;
// uchar loop1=16,loop2=70;
if(loop>4)
{
// tim=loop;
for(;loop>=4;loop-=4)
{
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
}
}
i=0;
if(i<loop){
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
}
if(i+1<loop){
putSPIchar(da2);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
}
if(i+2<loop){
putSPIchar(da3);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
}
if(i+3<loop){
putSPIchar(da4);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
}
}
void AllStarRight(uchar da1,uchar da2,uchar da3,uchar da4,uint init)
{
// uchar tim;//,i;
uchar loop1=16,loop2=70;
uint val1=0x00,i;
if(FLenghtCount!=0)
{
val1=hmod(FLenghtCount,4);
switch(val1)
{
case 3:
putSPIchar(da3);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
case 2:
putSPIchar(da2);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
case 1:
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
break;
default:
break;
}
if(FLenghtCount>val1)
{
i=val1;
for(;i<FLenghtCount;i+=4)
{
putSPIchar(da4);
DelayNs(50);
putSPIchar(da4);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
putSPIchar(da3);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
putSPIchar(da2);
DelayNs(50);
if(BLenghtCount==0 && (i+4)>=FLenghtCount)break;
else{
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
}
}
}
}
i=init;
for(;i<BLenghtCount;i++)
{
putSPIchar(UNLOCKDATA);
DelayNs(50);
putSPIchar(UNLOCKDATA);
DelayNs(50);
}
// SendSS(1);
// SendSI(loop1);
// if(SpeedDelay(mode & 0x03)) return 1;
// else return 0;
}
uchar AllStarMiddleToEdge(uchar da1,uchar da2,uchar da3,uchar da4,uchar mode)
{
uint tim,i,diff,j;
//芯片数为双数, 为单数
HalfLenght=val_lenght/2;
// left =0;
// right=1;
FLenghtCount=1;
BLenghtCount=HalfLenght+1;
putSPIchar(da1);
DelayNs(50);
putSPIchar(da1);
DelayNs(50);
for(i=1;i<BLenghtCount;i++)
{
putSPIchar(UNLOCKDATA);
DelayNs(50);
putSPIchar(UNLOCKDATA);
DelayNs(50);
}
SendSS(1);
// SendSI(loop1);
if(SpeedDelay(mode & 0x03)) return 1;
// else return 0;
// AllStarRight(da1, da2, da3, da4,mode);
for(i=1;i<BLenghtCount;i++)
{
AllStarLeft(da1, da2, da3, da4,i);
// left--;
// right++;
// diff=right - left;
FLenghtCount++;
AllStarRight(da1, da2, da3, da4,FLenghtCount);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return 1;
}
return 0;
}
//从中间向两边。
void AllStarProcess_2(uchar kind,uchar mode)
{
uchar i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
GetMiddleColor(value);
if(AllStarMiddleToEdge(value, color1, color2, ALLBLACK,mode)==1) break;
}
}
}
uchar AllStarEdgeToMiddle(uchar da1,uchar da2,uchar da3,uchar da4,uchar mode)
{
uint tim,i,diff,j;
//芯片数为双数, 为单数
HalfLenght=val_lenght/2;
// left =0;
// right=1;
FLenghtCount=1;
BLenghtCount=val_lenght-2;
for(i=1;i<=HalfLenght;i++)
{
AllStarRight(da1, da2, da3, da4,0);
// left--;
// right++;
// diff=right - left;
FLenghtCount++;
AllStarLeft(da1, da2, da3, da4,i);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return 1;
if(BLenghtCount==1)
{
BLenghtCount=0;
AllStarRight(da1, da2, da3, da4,0);
// FLenghtCount++;
AllStarLeft(da1, da2, da3, da4,i+1);
SendSS(1);
SendSI(16);
if(SpeedDelay(mode & 0x03)) return 1;
return 0;
}
else
BLenghtCount-=2;
}
return 0;
}
void AllStarProcess_3(uchar kind,uchar mode)
{
uchar i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
GetMiddleColor(value);
if(AllStarEdgeToMiddle(value, color1, color2, ALLBLACK,mode)==1) break;
}
}
}
void SevenColorProcess(uchar kind,uchar mode)
{
uchar tim,i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
// SendFirstToEnd(value,mode & 0x0f,CLASSNUMBER,1);
SendFirstToEnd(value,mode & 0x0f,0x00,1);
for(tim=1;tim<val_lenght ;tim++)
{
if(SendFirstToEnd(UNLOCKDATA,mode & 0x0f,CLASSNUMBER,1)==1) return;
}
}
}
}
void SevenColorProcess_1(uchar kind,uchar mode)
{
uchar tim,i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
FLenghtCount=0;
SendEndToFirst(value,mode & 0x0f,UNLOCKDATA,0,1);
for(tim=1;tim<val_lenght;tim++)
{
FLenghtCount++;
if(SendEndToFirst(value,mode & 0x0f,UNLOCKDATA,CLASSNUMBER,1)==1) return;
}
}
}
}
void SixColorProcess(uchar kind,uchar mode)
{
uchar tim,i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
for(tim=0;tim<val_lenght ;tim++)
{
if(SendFirstToEnd(value,mode & 0x0f,0,1)==1) return;
}
}
}
}
void SixColorProcess_1(uchar kind,uchar mode)
{
uchar tim,i,value;
for(i=0;i<7;i++)
{
value=KindGroudData[kind][i];
if(value!=0x00)
{
FLenghtCount=0;
// SendEndToFirst(value,mode & 0x0f,ALLBLACK);
SendEndToFirst(value,mode & 0x0f,UNLOCKDATA,CLASSNUMBER,1);
for(tim=1;tim<val_lenght;tim++)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -