Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Вс янв 09, 2011 17:59:29
Danko, O-LED. Спасибо.
Вт янв 11, 2011 06:35:40
не там сообщение создал, уже удалил. Извините!
Последний раз редактировалось
Sounds Вт янв 11, 2011 07:19:15, всего редактировалось 1 раз.
Вт янв 11, 2011 06:44:39
Удивлён что до сих пор в данной ветке не появилась данная ссылка:
http://www.piclist.ru/D-DS-DS1307-RUS/D ... 7-RUS.html
Вт янв 11, 2011 07:53:23
Vov123, может все таки ветку начинать читать с первого сообщения, а не с последнего ?
Вт янв 11, 2011 08:00:21
Что-ж поделать,невнимательность-моя фишка.
Добавлю,что вывод SQW/OUT.установив в 1гц,удобно использовать для внешнего прерывания.Считывание времени производить в обработчике прерывания,а остальное время спать.
Я тут собрал подобные часики с термометром ds1820,попробовал на at89s52.В качестве индикатора использовал MT-10T7 и WH1601.В первом случае ток потребления был 12mA,а во втором 14,это без sleep.
Чт мар 22, 2012 21:29:15
Нигде не могу найти ответа на пару вопросов.
1. Выводы DS1307 (SDA и SCL) необходимо подключать к таким же выводам МК (SDA и SCL) или можно к любим пинам?
2. Как конфигурировать выводы МК, к которым подключены SDA и SCL м/с DS1307? Входы, выходы?
Пт мар 23, 2012 16:20:43
I2C существует как аппаратный так и програмный и по сему в первом случае выводы RTC нужно соединять с одноименными выводами МК, во втором случае (програмном) можно соединять с любыми.
В первом случает выводы модно не инициализировать, а во втором SCL на вывод т.к. МК будет мастером сети, ну SDA в зависимости от направления.
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
Пт мар 23, 2012 22:38:11
Danko писал(а):
Если писать на Си и использовать готовые библиотеки, то такие вопросы чаще всего не возникают, а если на ассемблере, то тут Вам нужно читать и читать книги.
Спасибо, понятно. Не понятно только, как можно забить на конфигурацию порта? Как я понял, тот же КодВижновский генератор начального кода порты не конфигурирует под те или иные установки, к примеру, какие порты не задавай для ЖКИ, в тексте программы будут и DDRN = 0x00 и PORTN = 0x00...
По сути вопроса. Вот нарыл в инете проект для часов DS1307 и именно для КодВижна. Вроде бы все правильно работает, но через несколько секунд считываемые с часов данные приобретают хаотичный характер. Причем на ЖКИ индицируются загадочные показания вреиени и календаря, а в окошке Протеуса содержимое байт приобретает заоблачные четырехзначные и более значения, хотя переменные-то однобайтные unsigned char.
Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Вс мар 25, 2012 17:58:21
R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Вс мар 25, 2012 19:40:09
loshvitalik писал(а):Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?
Вс мар 25, 2012 19:44:13
R_ura писал(а):loshvitalik писал(а):Это глюк прошивки. Учитывая то что вы используете программный i2c то вполне возможно. У меня тоже неправильные значения.
Не совсем понял, т.е. и в железе будет тоже. что и в Протеусе?
Как с этим бороться? Уже несколько вариантов прошивки поменял -то же самое.
Неужели в КодВижн нерабочая библиотека програмного i2c?
Хотя, вполне возможно, что протеус плохо понимает аппаратный и2ц. Но кнопки все-таки работают и значения инкрементируются, но месяцев почему-то намного больше 13.
Попробуйте перенести в железо - может быть, контроллер при инициализации шлет в часы мусор.
Вс мар 25, 2012 22:42:10
R_ura писал(а): Скажите, это глюк симуляции в Протеусе или что-то не то в коде программы? Хотя там же стандартная КодВиженская бибилотека, именно под DS1307. В реале сейчас этой мс нет, поэтому и вопрос такой.
Да именно глюк в логике программы.
Изучил Ваш код.
Подправил.
Обратите внимание на один момент: если не нажимать кнопки сколько раз в секунду в Вашем коде идет опрос шины I2C ?
Ответ: постоянно, без задержек.
А теперь рекомендации:
1. вам в реале не будет нужна частота 8 МГц. Ваш код будет работать и на 1 МГц, а возможно и на 1 кГц. Пусть Интел гонится за Гигагерцами, Вы же не Win7 инсталируете
2. пересмотрите логику работы и удалите постоянную очистку экрана. Идеальный вариант это выводить информации только при ее смене т.е. в Вашем случае это нажатие кнопок и изменение секунд.
Из практики могу сказать, что если полностью отказаться от функции очистки экрана, то контрастность можно выкрутить на минимум и еще: есть инверсные экраны так вот на них Вам просто придется отказаться от полной очистки.
Пн мар 26, 2012 06:46:08
Спасибо, разобрался..
Вт апр 17, 2012 17:41:51
Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов). В часах есть повышающий преобразователь на MAX1771. Как исправить этот глюк?
Программу прилагаю.
Сюда перенес.
aen
Вт апр 17, 2012 18:30:08
*Trigger* писал(а):Собрал часы, в них стоит DS1307. Периодически на индикаторах появляется белиберда в виде ненужных цифр (например, было 12 часов, но вдруг проскакивает 45 часов).
Плохой контакт на 80% .И вообще давайте на радость модераторам нак каждый вопрос по датчику создавать новые темы?В помойке же интереснее !!!
Вт апр 17, 2012 18:47:35
Пропаял, не помогло. Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?
Вт апр 17, 2012 20:03:48
*Trigger* писал(а): Ещё выяснил, чем больше частота прерываний, тем больше глюков. Странно, раньше в своих часах я этого не замечал. Ведь I2C глубоко плевать на задержки... Или я не прав?
Конечно не прав.Сколько по даташиту минимальне время опроса датчика?
Вт апр 17, 2012 20:22:04
Что за минимальное время опроса? я не понимаю.
Вт апр 17, 2012 20:28:24
*Trigger* писал(а):Что за минимальное время опроса? я не понимаю.
Читайте даташит,там написано сколько время датчик передаёт инфу(время+дата+день недели),и если Вы не обеспечите ему это время,то мк считает его некоректно(например 45часов 86 минут).
Вт апр 17, 2012 20:39:02
Так ведь интерфейс I2C, значит, временнЫе интервалы зависят от тактовых импульсов с МК.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.