[an error occurred while processing this directive]
|
int* i2c_File_read(U16 rom_addr, U8 size_of_data)
{
int i=0, *i2c_data;
i2c_data = new int[size_of_data];
i2c_Start();
i2c_byte_out(I2C_MEM_ADDR_WRITE);// обращаемся к устройству
if(!i2c_ack()) return 0; // ожидание подтверждения
i2c_byte_out(rom_addr>>8); // отправка старшего байта адреса
if(!i2c_ack()) return 0; // ожидание подтверждения
i2c_byte_out(rom_addr); // отправка младшего байта адреса
if(!i2c_ack()) return 0; // ожидание подтверждения
i2c_Start();
i2c_byte_out(I2C_MEM_ADDR_READ);// обращаемся к устройству
if(!i2c_ack()) return 0;
while (i void main()
E-mail:
info@telesys.ru
i2c_data[i++]= i2c_byte_in(); // отправка данных
i2c_master_ack(); // ожидание подтверждения
}
i2c_Stop(); // стоп условие
return i2c_data;
}
{
int read_array[3]
read_array = i2c_File_read(rom_addr, 3);
}
Ответы