зачем делать СВОЮ библиотеку и идти по граблям других
По граблям - это твой код использовать. Потому и пишем свое что такие криворукие как ты такой говнокод публикуют. Рекомендации лучших собаководов. Уверен что контроль ACK стр.53-55 реализован согласно стандарту? Хоть раз пробовал узнать, приняты ли данны или и так сойдет )))
Таких устройств - валом. И если твой код работает с 1602 прошлого века, в котором такого нет то это ниче не значить. Теперь смотри, ты выставил SCL в 1, так просто порт в HIGH, а не как положено отпустил в расчете что подтяжка есть к VCC. А слейв сделал 0 для задержки синхронизации. Что сгорит первым? прием ACK аналогично.
всегда на ассемблере пишешь, что тогда тут делаешь.??
Logik
код писался для управления одним простым устройством и не претендует на гениальность, а тем более для использования как библиотеки и выложен как пример. Я читал твой предыдущий пост по этому поводу.
DIVGENY Для Wire надо писать именно 0x29 и она сама сделает 0x52 при чтении и 0x53 при записи.
зачем делать СВОЮ библиотеку и идти по граблям других
void
iic_Write(
char
c) {
045
int
i;
046
for
(i=0;i<8;i++) {
047
iic_ClrSCL();
048
if
(c & 0x80) iic_SetSDA();
049
else
iic_ClrSDA();
050
c = c << 1;
051
iic_SetSCL();
052
}
053
iic_ClrSCL();
054
iic_ClrSDA();
//ACK
055
iic_SetSCL();
056
}
Да уж. На ассемблере этот кусочек кода будет раз в 20 короче и во столько-же раз бысрее. "библиАтекари )))
зачем делать СВОЮ библиотеку и идти по граблям других
По граблям - это твой код использовать. Потому и пишем свое что такие криворукие как ты такой говнокод публикуют. Рекомендации лучших собаководов. Уверен что контроль ACK стр.53-55 реализован согласно стандарту? Хоть раз пробовал узнать, приняты ли данны или и так сойдет )))
Почитай, здесь доступно http://www.gaw.ru/html.cgi/txt/doc/micros/avr/arh_xmega_a/19_3.htm
Обрати внимание например на
19.3.7. Синхронизация и задержка импульсов синхронизации
Все подключенные к шине устройства, при необходимости снижения скорости передачи или вставки пауз на время обработки данных, могут продлить длительность низкого уровня сигнала синхронизации. Это достигается путем принудительного удержания линии SCL в низком состоянии.
Предусмотрено три типа задержки импульсов синхронизации (см. рисунок 19.8).
Таких устройств - валом. И если твой код работает с 1602 прошлого века, в котором такого нет то это ниче не значить. Теперь смотри, ты выставил SCL в 1, так просто порт в HIGH, а не как положено отпустил в расчете что подтяжка есть к VCC. А слейв сделал 0 для задержки синхронизации. Что сгорит первым? прием ACK аналогично.
замечангия приняты и отчасти справедливы.
-NMi-
всегда на ассемблере пишешь, что тогда тут делаешь.??
Logik
код писался для управления одним простым устройством и не претендует на гениальность, а тем более для использования как библиотеки и выложен как пример. Я читал твой предыдущий пост по этому поводу.
всем удачи и беригите нервы...
Нашы нервы - из толстых проводов, нам ничо не страшна.
-NMi-
всегда на ассемблере пишешь
что тогда тут делаешь.??
Почти ВСЕГДА, если критично ко времени и размеру кода!
Чо делаю - с ДеДом бухаю!!!