我在
下面有一个数组unsigned char pat6[8] = {0x3C,0xFF,0xC3,0xC3,0xC3,0xC3,0xFF,0x3C,};
如何从我从这里读到的内存内容中填充数组?
unsigned char read_byte() //reading from EEPROM serially
{
unsigned int i;
sda=1;
reead=0;
for(i=0;i<8;i++)
{
reead=reead<<1;
scl=1;
_nop_();
_nop_();
if(sda==1)
reead++;
scl=0;
}
sda=0;
return reead; //Returns 8 bit data here
}
由于
void display_clear(unsigned char pattern[])//, int num)
{
unsigned int cnt, col, row; //, num ;
row = 1;
//for (cnt = num*8 ; cnt < (num*8+8) ; cnt ++ ) //display pattern each character
for (cnt = 0 ; cnt < 8 ; cnt ++ ) //display pattern each character
{
P3 = ~pattern[cnt];
P1 = ~row;
delay_ms(100) ; // delay of 1 ms
row = row<<1;
}
row = 0x00;
}
朋友,上面的功能,我用来显示数组..... 我想从串行存储器中填充数组中的数据
我试着这样做:
//begin of read 2048 byte from serial memory AT24C16
for (i=0;i<2048;i++)
{
j[i]=read_byte();
aknowledge();
}
//end of read 2048 byte from serial memory AT24C16
并收到错误:
24C16_RW.C(229):错误C216:非数组或维数过多的下标
还有其他方法吗?
感谢
答案 0 :(得分:0)
我不知道我是否正确理解了您的问题,但我认为使用for语句会有效。
for (i=0, i<8,i++)
pat6[i]=read_byte();
我没有得到的是读取函数如何知道如何顺序读取。我认为通过该实现,整个数组将填充相同的字节。
答案 1 :(得分:0)
请遵循以下伪代码。
function write_into_array()
{
for i=0 to 8 {
array[i] = value-to-be-stored;
}
}
但是在你的代码中,scl
变量声明在哪里?或者它是一个全局变量,就像pat6[]
数组一样?
OTOH,你应该在最后摆脱额外的,
。
unsigned char pat6[8] = {0x3C,0xFF,0xC3,0xC3,0xC3,0xC3,0xFF,0x3C,};