📄 function.c
字号:
#include "common.h"
//取得“内选数据”“内选可停”“上呼可停”“下呼可停”索引值为cIdx的数据
uchar GetArrayData(uchar *pData, uchar cIdx)
{
uchar ret=0x00;
uchar cMOD = cIdx%8;
uchar cMoveBit = cMOD; //移动位数
if((cIdx>=0) && (cIdx<8)){
ret = (pData[0]>>cMoveBit) & 0x01;
}else if((cIdx>=8) && (cIdx<16)){
ret = (pData[1]>>cMoveBit) & 0x01;
}else if((cIdx>=16) && (cIdx<24)){
ret = (pData[2]>>cMoveBit) & 0x01;
}else if((cIdx>=24) && (cIdx<32)){
ret = (pData[3]>>cMoveBit) & 0x01;
}else if((cIdx>=32) && (cIdx<40)){
ret = (pData[4]>>cMoveBit) & 0x01;
}else if((cIdx>=40) && (cIdx<48)){
ret = (pData[5]>>cMoveBit) & 0x01;
}else if((cIdx>=48) && (cIdx<56)){
ret = (pData[6]>>cMoveBit) & 0x01;
}
return ret;
}
void Set0Data(uchar *pData, uchar cMOD)
{
switch(cMOD){
case 0: *pData = (*pData)&0xFE; break; // 1111,1110
case 1: *pData = (*pData)&0xFD; break; // 1111,1101
case 2: *pData = (*pData)&0xFB; break; // 1111,1011
case 3: *pData = (*pData)&0xF7; break; // 1111,0111
case 4: *pData = (*pData)&0xEF; break; // 1110,1111
case 5: *pData = (*pData)&0xDF; break; // 1101,1111
case 6: *pData = (*pData)&0xBF; break; // 1011,1111
case 7: *pData = (*pData)&0x7F; break; // 0111,1111
default: break;
}
}
//设置“内选数据”“内选可停”“上呼可停”“下呼可停”索引值为cIdx的数据,数据只能为0/1
void SetArrayData(uchar *pData, uchar cIdx, uchar cVal)
{
uchar cTemp= cVal;
uchar cMOD = cIdx%8;
uchar cMoveBit = cMOD; //移动位数
if(cVal==1){
cTemp = cTemp<<cMoveBit;
if((cIdx>=0) && (cIdx<8)){
pData[0] = pData[0]|cTemp;
}else if((cIdx>=8) && (cIdx<16)){
pData[1] = pData[1]|cTemp;
}else if((cIdx>=16) && (cIdx<24)){
pData[2] = pData[2]|cTemp;
}else if((cIdx>=24) && (cIdx<32)){
pData[3] = pData[3]|cTemp;
}else if((cIdx>=32) && (cIdx<40)){
pData[4] = pData[4]|cTemp;
}else if((cIdx>=40) && (cIdx<48)){
pData[5] = pData[5]|cTemp;
}else if((cIdx>=48) && (cIdx<56)){
pData[6] = pData[6]|cTemp;
}
}else{
if((cIdx>=0) && (cIdx<8)){
Set0Data(&(pData[0]), cMOD);
/* switch(cMOD){
case 0: pData[0] = pData[0]&0xFE; break; // 1111,1110
case 1: pData[0] = pData[0]&0xFD; break; // 1111,1101
case 2: pData[0] = pData[0]&0xFB; break; // 1111,1011
case 3: pData[0] = pData[0]&0xF7; break; // 1111,0111
case 4: pData[0] = pData[0]&0xEF; break; // 1110,1111
case 5: pData[0] = pData[0]&0xDF; break; // 1101,1111
case 6: pData[0] = pData[0]&0xBF; break; // 1011,1111
case 7: pData[0] = pData[0]&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=8) && (cIdx<16)){
Set0Data(&(pData[1]), cMOD);
/* switch(cMOD){
case 0: pData[1] = pData[1]&0xFE; break; // 1111,1110
case 1: pData[1] = pData[1]&0xFD; break; // 1111,1101
case 2: pData[1] = pData[1]&0xFB; break; // 1111,1011
case 3: pData[1] = pData[1]&0xF7; break; // 1111,0111
case 4: pData[1] = pData[1]&0xEF; break; // 1110,1111
case 5: pData[1] = pData[1]&0xDF; break; // 1101,1111
case 6: pData[1] = pData[1]&0xBF; break; // 1011,1111
case 7: pData[1] = pData[1]&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=16) && (cIdx<24)){
Set0Data(&(pData[2]), cMOD);
/* switch(cMOD){
case 0: pData[2] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[2] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[2] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[2] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[2] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[2] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[2] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[2] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=24) && (cIdx<32)){
Set0Data(&(pData[3]), cMOD);
/* switch(cMOD){
case 0: pData[3] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[3] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[3] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[3] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[3] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[3] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[3] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[3] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=32) && (cIdx<40)){
Set0Data(&(pData[4]), cMOD);
/* switch(cMOD){
case 0: pData[4] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[4] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[4] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[4] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[4] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[4] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[4] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[4] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=40) && (cIdx<48)){
Set0Data(&(pData[5]), cMOD);
/* switch(cMOD){
case 0: pData[5] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[5] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[5] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[5] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[5] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[5] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[5] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[5] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=48) && (cIdx<56)){
Set0Data(&(pData[6]), cMOD);
/* switch(cMOD){
case 0: pData[6] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[6] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[6] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[6] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[6] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[6] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[6] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[6] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}
}
}
//设置“内选数据”“内选可停”“上呼可停”“下呼可停”索引值为cIdx的数据,数据只能为0/1
void SetArrayData_INTERRUPT(uchar *pData, uchar cIdx, uchar cVal)
{
uchar cTemp= cVal;
uchar cMOD = cIdx%8;
uchar cMoveBit = cMOD; //移动位数
if(cVal==1){
cTemp = cTemp<<cMoveBit;
if((cIdx>=0) && (cIdx<8)){
pData[0] = pData[0]|cTemp;
}else if((cIdx>=8) && (cIdx<16)){
pData[1] = pData[1]|cTemp;
}else if((cIdx>=16) && (cIdx<24)){
pData[2] = pData[2]|cTemp;
}else if((cIdx>=24) && (cIdx<32)){
pData[3] = pData[3]|cTemp;
}else if((cIdx>=32) && (cIdx<40)){
pData[4] = pData[4]|cTemp;
}else if((cIdx>=40) && (cIdx<48)){
pData[5] = pData[5]|cTemp;
}else if((cIdx>=48) && (cIdx<56)){
pData[6] = pData[6]|cTemp;
}
}else{
if((cIdx>=0) && (cIdx<8)){
Set0Data(&(pData[0]), cMOD);
/* switch(cMOD){
case 0: pData[0] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[0] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[0] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[0] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[0] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[0] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[0] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[0] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=8) && (cIdx<16)){
Set0Data(&(pData[1]), cMOD);
/* switch(cMOD){
case 0: pData[1] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[1] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[1] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[1] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[1] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[1] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[1] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[1] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=16) && (cIdx<24)){
Set0Data(&(pData[2]), cMOD);
/* switch(cMOD){
case 0: pData[2] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[2] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[2] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[2] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[2] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[2] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[2] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[2] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=24) && (cIdx<32)){
Set0Data(&(pData[3]), cMOD);
/* switch(cMOD){
case 0: pData[3] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[3] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[3] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[3] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[3] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[3] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[3] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[3] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=32) && (cIdx<40)){
Set0Data(&(pData[4]), cMOD);
/* switch(cMOD){
case 0: pData[4] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[4] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[4] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[4] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[4] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[4] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[4] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[4] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=40) && (cIdx<48)){
Set0Data(&(pData[5]), cMOD);
/* switch(cMOD){
case 0: pData[5] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[5] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[5] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[5] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[5] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[5] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[5] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[5] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}else if((cIdx>=48) && (cIdx<56)){
Set0Data(&(pData[6]), cMOD);
/* switch(cMOD){
case 0: pData[6] = (*pData)&0xFE; break; // 1111,1110
case 1: pData[6] = (*pData)&0xFD; break; // 1111,1101
case 2: pData[6] = (*pData)&0xFB; break; // 1111,1011
case 3: pData[6] = (*pData)&0xF7; break; // 1111,0111
case 4: pData[6] = (*pData)&0xEF; break; // 1110,1111
case 5: pData[6] = (*pData)&0xDF; break; // 1101,1111
case 6: pData[6] = (*pData)&0xBF; break; // 1011,1111
case 7: pData[6] = (*pData)&0x7F; break; // 0111,1111
default: break;
}*/
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -