#Часы реального времени DS1307 от Dallas Semiconductor#
- Реклама
- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
Удивлён что до сих пор в данной ветке не появилась данная ссылка:
http://www.piclist.ru/D-DS-DS1307-RUS/D ... 7-RUS.html
http://www.piclist.ru/D-DS-DS1307-RUS/D ... 7-RUS.html
Vov123, может все таки ветку начинать читать с первого сообщения, а не с последнего ?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
Что-ж поделать,невнимательность-моя фишка.
Добавлю,что вывод SQW/OUT.установив в 1гц,удобно использовать для внешнего прерывания.Считывание времени производить в обработчике прерывания,а остальное время спать.
Я тут собрал подобные часики с термометром ds1820,попробовал на at89s52.В качестве индикатора использовал MT-10T7 и WH1601.В первом случае ток потребления был 12mA,а во втором 14,это без sleep.
Добавлю,что вывод SQW/OUT.установив в 1гц,удобно использовать для внешнего прерывания.Считывание времени производить в обработчике прерывания,а остальное время спать.
Я тут собрал подобные часики с термометром ds1820,попробовал на at89s52.В качестве индикатора использовал MT-10T7 и WH1601.В первом случае ток потребления был 12mA,а во втором 14,это без sleep.
- Реклама
Нигде не могу найти ответа на пару вопросов.
1. Выводы DS1307 (SDA и SCL) необходимо подключать к таким же выводам МК (SDA и SCL) или можно к любим пинам?
2. Как конфигурировать выводы МК, к которым подключены SDA и SCL м/с DS1307? Входы, выходы?
1. Выводы DS1307 (SDA и SCL) необходимо подключать к таким же выводам МК (SDA и SCL) или можно к любим пинам?
2. Как конфигурировать выводы МК, к которым подключены SDA и SCL м/с DS1307? Входы, выходы?
I2C существует как аппаратный так и програмный и по сему в первом случае выводы RTC нужно соединять с одноименными выводами МК, во втором случае (програмном) можно соединять с любыми.
В первом случает выводы модно не инициализировать, а во втором SCL на вывод т.к. МК будет мастером сети, ну SDA в зависимости от направления.
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
В первом случает выводы модно не инициализировать, а во втором SCL на вывод т.к. МК будет мастером сети, ну SDA в зависимости от направления.
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Спасибо, понятно. Не понятно только, как можно забить на конфигурацию порта? Как я понял, тот же КодВижновский генератор начального кода порты не конфигурирует под те или иные установки, к примеру, какие порты не задавай для ЖКИ, в тексте программы будут и DDRN = 0x00 и PORTN = 0x00...Danko писал(а):
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
По сути вопроса. Вот нарыл в инете проект для часов DS1307 и именно для КодВижна. Вроде бы все правильно работает, но через несколько секунд считываемые с часов данные приобретают хаотичный характер. Причем на ЖКИ индицируются загадочные показания вреиени и календаря, а в окошке Протеуса содержимое байт приобретает заоблачные четырехзначные и более значения, хотя переменные-то однобайтные unsigned char.
Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?loshvitalik писал(а): Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?
Хотя, вполне возможно, что протеус плохо понимает аппаратный и2ц. Но кнопки все-таки работают и значения инкрементируются, но месяцев почему-то намного больше 13.R_ura писал(а):Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?loshvitalik писал(а): Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?
Попробуйте перенести в железо - может быть, контроллер при инициализации шлет в часы мусор.
Да именно глюк в логике программы.R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Изучил Ваш код.
Подправил.
Обратите внимание на один момент: если не нажимать кнопки сколько раз в секунду в Вашем коде идет опрос шины I2C ?
Ответ: постоянно, без задержек.
А теперь рекомендации:
1. вам в реале не будет нужна частота 8 МГц. Ваш код будет работать и на 1 МГц, а возможно и на 1 кГц. Пусть Интел гонится за Гигагерцами, Вы же не Win7 инсталируете
2. пересмотрите логику работы и удалите постоянную очистку экрана. Идеальный вариант это выводить информации только при ее смене т.е. в Вашем случае это нажатие кнопок и изменение секунд.
Из практики могу сказать, что если полностью отказаться от функции очистки экрана, то контрастность можно выкрутить на минимум и еще: есть инверсные экраны так вот на них Вам просто придется отказаться от полной очистки.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Собрал часы, в них стоит 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 и подобные.
Плохой контакт на 80% .И вообще давайте на радость модераторам нак каждый вопрос по датчику создавать новые темы?В помойке же интереснее !!!*Trigger* писал(а):Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов).
У кошки четыре ноги: вход,
выход, земля и питание.
Но трогать её не моги:
получится замыкание
выход, земля и питание.
Но трогать её не моги:
получится замыкание
Пропаял, не помогло. Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?
Этот пост оказался полезен? Не поленись, нажми
слева!

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

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

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


