
#Часы реального времени DS1307 от Dallas Semiconductor#
- IM1
- Грызет канифоль
- Сообщения: 268
- Зарегистрирован: Вт фев 16, 2010 12:10:38
- Откуда: Воронеж, Россия
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Danko, O-LED. Спасибо. 

Re: #Часы реального времени DS1307 от Dallas Semiconductor#
не там сообщение создал, уже удалил. Извините!
Последний раз редактировалось Sounds Вт янв 11, 2011 07:19:15, всего редактировалось 1 раз.
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Удивлён что до сих пор в данной ветке не появилась данная ссылка:
http://www.piclist.ru/D-DS-DS1307-RUS/D ... 7-RUS.html
http://www.piclist.ru/D-DS-DS1307-RUS/D ... 7-RUS.html
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Vov123, может все таки ветку начинать читать с первого сообщения, а не с последнего ?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Что-ж поделать,невнимательность-моя фишка.
Добавлю,что вывод SQW/OUT.установив в 1гц,удобно использовать для внешнего прерывания.Считывание времени производить в обработчике прерывания,а остальное время спать.
Я тут собрал подобные часики с термометром ds1820,попробовал на at89s52.В качестве индикатора использовал MT-10T7 и WH1601.В первом случае ток потребления был 12mA,а во втором 14,это без sleep.
Добавлю,что вывод SQW/OUT.установив в 1гц,удобно использовать для внешнего прерывания.Считывание времени производить в обработчике прерывания,а остальное время спать.
Я тут собрал подобные часики с термометром ds1820,попробовал на at89s52.В качестве индикатора использовал MT-10T7 и WH1601.В первом случае ток потребления был 12mA,а во втором 14,это без sleep.
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Нигде не могу найти ответа на пару вопросов.
1. Выводы DS1307 (SDA и SCL) необходимо подключать к таким же выводам МК (SDA и SCL) или можно к любим пинам?
2. Как конфигурировать выводы МК, к которым подключены SDA и SCL м/с DS1307? Входы, выходы?
1. Выводы DS1307 (SDA и SCL) необходимо подключать к таким же выводам МК (SDA и SCL) или можно к любим пинам?
2. Как конфигурировать выводы МК, к которым подключены SDA и SCL м/с DS1307? Входы, выходы?
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
I2C существует как аппаратный так и програмный и по сему в первом случае выводы RTC нужно соединять с одноименными выводами МК, во втором случае (програмном) можно соединять с любыми.
В первом случает выводы модно не инициализировать, а во втором SCL на вывод т.к. МК будет мастером сети, ну SDA в зависимости от направления.
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
В первом случает выводы модно не инициализировать, а во втором SCL на вывод т.к. МК будет мастером сети, ну SDA в зависимости от направления.
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Danko писал(а):
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
Спасибо, понятно. Не понятно только, как можно забить на конфигурацию порта? Как я понял, тот же КодВижновский генератор начального кода порты не конфигурирует под те или иные установки, к примеру, какие порты не задавай для ЖКИ, в тексте программы будут и DDRN = 0x00 и PORTN = 0x00...
По сути вопроса. Вот нарыл в инете проект для часов DS1307 и именно для КодВижна. Вроде бы все правильно работает, но через несколько секунд считываемые с часов данные приобретают хаотичный характер. Причем на ЖКИ индицируются загадочные показания вреиени и календаря, а в окошке Протеуса содержимое байт приобретает заоблачные четырехзначные и более значения, хотя переменные-то однобайтные unsigned char.

Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
-
loshvitalik
- Нашел транзистор. Понюхал.
- Сообщения: 176
- Зарегистрирован: Чт май 05, 2011 12:58:32
- Откуда: Екатеринбург
- Контактная информация:
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
loshvitalik писал(а):Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?
-
loshvitalik
- Нашел транзистор. Понюхал.
- Сообщения: 176
- Зарегистрирован: Чт май 05, 2011 12:58:32
- Откуда: Екатеринбург
- Контактная информация:
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
R_ura писал(а):loshvitalik писал(а):Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?
Хотя, вполне возможно, что протеус плохо понимает аппаратный и2ц. Но кнопки все-таки работают и значения инкрементируются, но месяцев почему-то намного больше 13.
Попробуйте перенести в железо - может быть, контроллер при инициализации шлет в часы мусор.
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Да именно глюк в логике программы.R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Изучил Ваш код.
Подправил.
Обратите внимание на один момент: если не нажимать кнопки сколько раз в секунду в Вашем коде идет опрос шины I2C ?
Ответ: постоянно, без задержек.
А теперь рекомендации:
1. вам в реале не будет нужна частота 8 МГц. Ваш код будет работать и на 1 МГц, а возможно и на 1 кГц. Пусть Интел гонится за Гигагерцами, Вы же не Win7 инсталируете
2. пересмотрите логику работы и удалите постоянную очистку экрана. Идеальный вариант это выводить информации только при ее смене т.е. в Вашем случае это нажатие кнопок и изменение секунд.
Из практики могу сказать, что если полностью отказаться от функции очистки экрана, то контрастность можно выкрутить на минимум и еще: есть инверсные экраны так вот на них Вам просто придется отказаться от полной очистки.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Спасибо, разобрался..
И снова DS1307
Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов). В часах есть повышающий преобразователь на MAX1771. Как исправить этот глюк?
Программу прилагаю.
Сюда перенес.
aen
Программу прилагаю.
Сюда перенес.
aen
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: И снова DS1307
*Trigger* писал(а):Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов).
Плохой контакт на 80% .И вообще давайте на радость модераторам нак каждый вопрос по датчику создавать новые темы?В помойке же интереснее !!!
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Пропаял, не помогло. Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Конечно не прав.Сколько по даташиту минимальне время опроса датчика?*Trigger* писал(а): Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Что за минимальное время опроса? я не понимаю.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
*Trigger* писал(а):Что за минимальное время опроса? я не понимаю.
Читайте даташит,там написано сколько время датчик передаёт инфу(время+дата+день недели),и если Вы не обеспечите ему это время,то мк считает его некоректно(например 45часов 86 минут).
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Re: #Часы реального времени DS1307 от Dallas Semiconductor#
Так ведь интерфейс I2C, значит, временнЫе интервалы зависят от тактовых импульсов с МК.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.