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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Открыл глаза
Аватара пользователя
Сообщения: 53
Зарегистрирован: Ср янв 03, 2007 01:15:28
Откуда: Баку

Сообщение Ximikator »

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

Сразу предупрежу, что пишу только на ассемблере, и мне хочется использовать именно аппаратную возможность контроллёра.
В приложенном архиве схема подключения и программа на ассемблере.
Вложения
DS1307.rar
Схема подключения и исходный текст на ассемблере
(8.6 КБ) 489 скачиваний
Опыт - это то, что получаешь, не получив того, что хотел.
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 53
Зарегистрирован: Ср янв 03, 2007 01:15:28
Откуда: Баку

Сообщение Ximikator »

Всё, вопрос снимается, проблема была во мне, а вернее в моей невнимательности. Сегодня с утречка, хорошенько поковырявшись в программке, поправил большое количество явных ошибок и всё заработало.
Будьте внимательны, и всё у вас будет работать как часы :)
Опыт - это то, что получаешь, не получив того, что хотел.
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 53
Зарегистрирован: Ср янв 03, 2007 01:15:28
Откуда: Баку

Сообщение Ximikator »

Выкладываю :)
После подачи питания, контроллёр инициализирует DS1307, а потом периодически считывает. Как я уже писал, обработка полученной информации отсутствует, так как эта программа исключительно для тестирования.
Если заметите ошибки, дайте мне знать, пожалуйста.
Вложения
DS1307.rar
Проект для Proteus, откомпилированный hex и исходный текст на ассемблере
(18.11 КБ) 581 скачивание
Опыт - это то, что получаешь, не получив того, что хотел.
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Спасибо !

Первый раз вижу чтоб человек запаковал ТОЛЬКО то что нужно !
Большинство пакуют весь "мусор" из папки проекта PROTEUS.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»