Страница 1 из 1

Mega8 + DS1307(I2C) получаю некорректные данные

Добавлено: Пт авг 31, 2007 21:40:02
Ximikator
Всем доброго здравия!
Понадобилось мне подключить часы реального времени (DS1307) к МК mega8. Почитал в разных местах про шину I2C и написал программку, которая использует аппаратный TWI контроллёра. Для проверки работоспособности программы, нарисовал схему в Proteus, где она успешно функционировала. Дальше собрал железную копию, тут то проблемы и начались. По задумке, контролёр получает от часов 7 байт с данными и сразу выводит их на ЖКИ, всякую обработку реализовывать не стал, чтоб не усложнять программу. После подачи питания, контроллёр успешно завершает процедуру чтения данных и выводит на ЖКИ какой-то мусор, который начинается с 4 (0b00110100 – адрес часов), потом пробел и 5 символов с хаотично расположенными пикселями. Тройная проверка монтажа, ошибок не выявила, всё, кроме часов, работает нормально, замена часов не помогла. Отчаявшись разобраться с проблемой самостоятельно, обращаюсь за помощью к мудрым котам и буду признателен за любую подсказку.

Сразу предупрежу, что пишу только на ассемблере, и мне хочется использовать именно аппаратную возможность контроллёра.
В приложенном архиве схема подключения и программа на ассемблере.

Добавлено: Вс сен 02, 2007 14:31:33
Ximikator
Всё, вопрос снимается, проблема была во мне, а вернее в моей невнимательности. Сегодня с утречка, хорошенько поковырявшись в программке, поправил большое количество явных ошибок и всё заработало.
Будьте внимательны, и всё у вас будет работать как часы :)

Добавлено: Вс сен 02, 2007 16:13:51
Ximikator
Выкладываю :)
После подачи питания, контроллёр инициализирует DS1307, а потом периодически считывает. Как я уже писал, обработка полученной информации отсутствует, так как эта программа исключительно для тестирования.
Если заметите ошибки, дайте мне знать, пожалуйста.

Добавлено: Вс сен 02, 2007 16:19:13
tych
Спасибо !

Первый раз вижу чтоб человек запаковал ТОЛЬКО то что нужно !
Большинство пакуют весь "мусор" из папки проекта PROTEUS.