[an error occurred while processing this directive]
|
Она заключается в неправильном формировании уровня "1" на линиях I2C. Единица на шине должна формироваться подтягивающим резистором, для этого ножка порта настраивается на вывод, а передача нуля происходит переводом ножки порта на вывод (с записанным в соответствующий бит I2C_PORT нулем). Как минимум в I2CStart и I2CStop у Вас единица выдается "в лоб", что приводит к конфликтам на шине. В общем рекомендация такая: в I2CInit запишите в биты I2C_PORT нули и дальше работайте с I2C_DDR.
E-mail: info@telesys.ru