Первый ляп: i2c_SendByte(unsigned char byte)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Сергей Борщ 23 июля 2004 г. 13:38
В ответ на: Исходник вижу. Счас буду искать. Вот мой для PIC: отправлено Сергей Борщ 23 июля 2004 г. 13:24


SCL=0;
SCL_DIR = I2C_OUTPUT;/* drive clock low */
/* data hold time = 0, send data now */

SDA = ((byte>>i) & 0x01);/* bit to send */
Вот тут надо было SDA оставить в 0, а SDA_DIR делать IN или OUT
SDA_DIR = I2C_OUTPUT;

DelayUs(I2C_TM_DATA_SU);

SCL_DIR = I2C_INPUT;/* float clock high */
Вот в этот момент после 8-го бита слейв начинает генерировать ACK, а на выводе данных держится последний переданный бит, который может быть и 1 => КОНФЛИКТ!


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru