אני מתעסק קצת עם רכיב זיכרון של אטמל שמבוסס i2c.
אני מצליח לקרוא ולכתוב לו מידע.
איני מצליח אמנם לקרוא מידע בצורה מתמשכת (מי שהתעסק עם הרכיב בטח מבין על מה אני מדבר).
בכל מקרה זה הסידור:
unsigned char b=0,c=0,d=0,e=0,a=0;
const unsigned char str_da[] PROGMEM= "%u %u %u %u %u";
unsigned char data1 = 0x00;
{
convert_uint_to_uchar(0);
i2c_start();
i2c_tx(DEVICE_ADDRESS); // B1010xxx
a += i2c_ack_from_slave();
if(a==1)
{
i2c_tx(converted_uint_to_uchar[0]); // MSB1
a += i2c_ack_from_slave();
if (a==2)
{
i2c_tx(converted_uint_to_uchar[1]); // MSB2
a += i2c_ack_from_slave();
if (a==3)
{
i2c_start();
i2c_tx(DEVICE_ADDRESS | 0x01); // B1010xxx
a += i2c_ack_from_slave();
if (a==4)
{
b = i2c_rx(); // LSB3
i2c_ack_to_slave();
c = i2c_rx(); // LSB3
i2c_ack_to_slave();
d = i2c_rx(); // LSB3
i2c_ack_to_slave();
e = i2c_rx(); // LSB3
}
}
}
}
i2c_stop();
}
hid_clear_hid_debug_text();
sprintf(buffer_usb_debug_text, &str_da , a,b,c,d,e);
send_back=3;
אם חושבים שצריך, אשלח גם את הספרייה שעשיתי לi2c.
תודה לעוזרים מראש!


