以下代码,如何让它更高效? unsigned short int regs1[][2]={
{0xFCFC,0xD000},
{0x0010,0x0001},
{0x1030,0x0000},
{0x0014,0x0001},
.......
{0x0014,0x0001}
}; int size1=sizeof(regs1)/sizeof(regs1[0]); unsigned short int dwVal;
unsigned short int dwStartAdd, dwData;
int i=0; //size1 大于 3000 for (i=0; i<size1; i++)
{
dwVal = (regs1[i][0]);
//dwStartAdd = ((dwVal & 0xFF00) >> 8);
//dwStartAdd |= ((dwVal & 0x00FF) << 8);
dwStartAdd = ((dwVal & 0xFF00) >> 8) | ((dwVal & 0x00FF) << 8); dwVal = regs1[i][1];
//dwData = ((dwVal & 0xFF00) >> 8);
//dwData |= ((dwVal & 0x00FF) << 8);
dwData = ((dwVal & 0xFF00) >> 8) |((dwVal & 0x00FF) << 8);
I2C_Write(g_hI2C, dwStartAdd, (PBYTE)&dwData, 2);
}
{0xFCFC,0xD000},
{0x0010,0x0001},
{0x1030,0x0000},
{0x0014,0x0001},
.......
{0x0014,0x0001}
}; int size1=sizeof(regs1)/sizeof(regs1[0]); unsigned short int dwVal;
unsigned short int dwStartAdd, dwData;
int i=0; //size1 大于 3000 for (i=0; i<size1; i++)
{
dwVal = (regs1[i][0]);
//dwStartAdd = ((dwVal & 0xFF00) >> 8);
//dwStartAdd |= ((dwVal & 0x00FF) << 8);
dwStartAdd = ((dwVal & 0xFF00) >> 8) | ((dwVal & 0x00FF) << 8); dwVal = regs1[i][1];
//dwData = ((dwVal & 0xFF00) >> 8);
//dwData |= ((dwVal & 0x00FF) << 8);
dwData = ((dwVal & 0xFF00) >> 8) |((dwVal & 0x00FF) << 8);
I2C_Write(g_hI2C, dwStartAdd, (PBYTE)&dwData, 2);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货