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

Проблема с DS1307.

Добавлено: Пт янв 14, 2011 15:59:02
vitalyadm
Люди добрые! Прошу вас, помогите мне разобраться с моей проблемой!! Не сплю вторую неделю. :cry:
Для вступления: Гуру языка и т.п. я себя совсем не считаю, просто с детства хобби ради увлекаюсь «паяльным» делом, дома я содержу аквариум, так сказать для души, вот решил своим питомцам своять некоторый с позволения сказать компутер их жизнеобеспечения. Использовать продаваемых «китайцев» просто не хочу, тем более так чтоб всё в одном я не встречал, а то, что вообще можно найти стоит очень много, правда там функционала конечно больше, но зачем козе баян, да и всё же своё оно куда приятней. Поискав по просторам интернета, почитав литературу принялся за дело, в протеусе (используемая версия: 7.7 SP2) спроектировал будущую (всё таки я надеюсь) схемку, написал в CodeVisionAVR (используемая версия: 1.25.9) прошивку и к удивлению в протеусе она заработала, но увы, радость была не долгой.
Суть проблемы заключается в том, что как только делаешь пуск симуляции всё начинает работать так, как мне и нужно, но через НЕОПРЕДЕЛЁННЫЙ промежуток времени (это может быть минута, 5 минут, 10, 20 секунд, в общем через сколько- то) у часов (DS1307) сносит кукушку , при чём тоже по разному, на экране может отобразиться вместо текущего времени или даты, или даже того и другого вместе что угодно, например 85:85, или 165-165-165, при чём это не просто глюки преобразования полученных значений из микрушки, в свою очередь в протеусовском окошке отображения текущего времени DS- ки видно, что значения даты или времени или того и другого вместе также изменились, при чём, на какую- то ересь вроде 11-115-2114. Из логов протеуса видно, что сей глюк появляется тогда, когда в лог добавляется строка: «Simulation is not running in real time due to excessive CPU load.» (хотя могу ошибаться) Само собой обратно уже значения не восстанавливаются и поэтому можно сделать вывод, что устройство просто не работает, а чего- то я не понимаю) С датчиком температуры проблем нет, да и вообще со всем остальным всё нормально.

Вкратце по проекту:
D1- подсветка индикатора
D2- выполняет роль термостата, держит температуру не ниже выставленной.
D3-D5 - включают/выключают нагрузку в указанное время.
D6- зачем- то хотел использовать, но мыргает пока без дела.
D9- временный
D8-D7- индикация включения реле, есть желание использовать двух цветный светодиод
По кнопкам, забыл обозначить, извиняюсь
Не в меню: кнопка та что средняя включает/выключает подсветку индикатора, нижняя включает/выключает реле. Для вкл или выкл нужно нажать и держать соответствующую кнопку в районе 1 сек.
Заход в меню также удерживанием верхней кнопки, после захода в меню верхняя кнопка играет роль перехода на следующий пункт менюшки, кнопка средняя становится плюсом, нижняя минусом.
D2-D5- это будующие МОС- ы.

Прошивку, схему конечно прилагаю. В общем, пожалуйста, помогите чем можете, только умоляю не нужно писать что- то вроде читай доки, листай интернет, пользуй готовое…. Ничего толкового я найти так и не смог по решению этой проблемы.
За ранее благодарю, на все вопросы отвечу почему так или не так с удовольствием. :beer:

Re: Пожалуйста, помогите с проектом!!!!

Добавлено: Пт янв 14, 2011 16:23:18
ut1wpr
vitalyadm писал(а):когда в лог добавляется строка: «Simulation is not running in real time due to excessive CPU load.»
Лечится постановкой более мощного процессора в комплекте с бОльшей памятью. И то не всегда. Рекомендую не "подсаживаться" на Протезус, больно слазить будет. Симуляция никогда не была равнозначной заменой железу.

Re: Пожалуйста, помогите с проектом!!!!

Добавлено: Пт янв 14, 2011 16:31:53
vitalyadm
Увы, но не в загрузке процессора проблема, вот например очередной скриншот, видно что в логах всё чисто, кстати значения в самой дс- ке не изменились, но за то на экране не то что нужно.

Симуляция никогда не была равнозначной заменой железу


Не совсем понятна мысль. Т.е в реальном железе может всё работать без проблем?

Re: Проблема с DS1307.

Добавлено: Пт янв 14, 2011 19:31:53
O-LED
У вас принципиальная схема уже сложилась? Тогда соберите в железе, и до отладьте в нем. Я не говорю что протеус виноват, но исключать это не стоит, и вероятность не маленькая. Был у меня случай, я два месяца не мог понять в чем глюк, со злости спаял в железе, и все сразу и чудно заработало.......

Re: Проблема с DS1307.

Добавлено: Пт янв 14, 2011 19:37:11
Danko
void setup_mode(void)
{
while (1)
{//1
Жуть!!! Вечный цикл внутри функции :(



rtc_get_time(&h,&m,&test_s); // через 1,5 сек. считать еще раз
if (test_s == s) // если через 1,5 сек. время не изменилось значит таймер не запущен :)) :)) :))
Кстати есть более простой и быстрый способ.

Re: Проблема с DS1307.

Добавлено: Пт янв 14, 2011 19:52:58
simpleX
дак посмотрите в протеусе регистры МК, что читается из ds-ки

Re: Проблема с DS1307.

Добавлено: Пт янв 14, 2011 20:23:10
Danko
Запустил в Протуесе и на первых же секундах вылетело Simulation is not running in real time due to excessive CPU load.

После того как "почистил" проект строка в логе исчезла.

vitalyadm, попробуйте удалить из проекта все лишнее:
1. 7805
2. кварц и батарейка с DS1307
3. лишняя обвязка на LCD (первые три вывода)
4. МОСФЕТ и все, что с ним связано.

Re: Проблема с DS1307.

Добавлено: Сб фев 12, 2011 20:26:37
vitalyadm
На всякий случай, вдруг кто- то когда- то столкнётся с подобной проблемой. Я конечно поискал ещё ответ, естественно ничего так и не нашёл, в конечном итоге решил всё это дело своять на монтажной платке, как и рекомендовал мне O-LED и к моему удивлению всё заработало и даже очень хорошо заработало, в тестовом режиме устройство пролежало порядка 3- х дней и ни единого "глюка" так и не наблюдалось :))
Не хочу ругать протеус, но ошибок в нём хватает. Проверено.

Re: Проблема с DS1307.

Добавлено: Вс фев 13, 2011 10:17:18
zhu4er
vitalyadm писал(а):На всякий случай, вдруг кто- то когда- то столкнётся с подобной проблемой. Я конечно поискал ещё ответ, естественно ничего так и не нашёл, в конечном итоге решил всё это дело своять на монтажной платке, как и рекомендовал мне O-LED и к моему удивлению всё заработало и даже очень хорошо заработало, в тестовом режиме устройство пролежало порядка 3- х дней и ни единого "глюка" так и не наблюдалось :))
Не хочу ругать протеус, но ошибок в нём хватает. Проверено.

Вот почему я ненавижу Протеус. Кто ею пользуется - себя и своё время не уважает и не бережёт. Офигеть - ДВЕ НЕДЕЛИ ломать мозг почему глючит программа - УЖАС!

Re: Проблема с DS1307.

Добавлено: Вт фев 15, 2011 21:45:03
Dmitry Dubrovenko
zhu4er писал(а):я ненавижу Протеус
"Вы просто не умеете его готовить". :)))
И хватит уже рассказывать миф о "реальном железе".

Re: Проблема с DS1307.

Добавлено: Вт фев 15, 2011 22:20:20
GP1
И все же:
шпротеус и реальное железо - я вам скажу таки две большие разницы...

Re: Проблема с DS1307.

Добавлено: Ср фев 16, 2011 00:21:15
zhu4er
Dmitry Dubrovenko писал(а):
zhu4er писал(а):я ненавижу Протеус
"Вы просто не умеете его готовить". :)))
И хватит уже рассказывать миф о "реальном железе".

А при чём тут миф о реальном железе? Я никогда не пользовался симуляцией в протеусе это просто потеря времени. Объясню почему: всем известен ФАКТ глючности и недоделаности данного продукта, в тоже время я спокойно на макетке спаяю данную схему и буду тестить в реальном железе.

Re: Проблема с DS1307.

Добавлено: Ср фев 16, 2011 02:03:46
O-LED
Главный недостаток эмуляции - когда у вас что то не работает, вы не можете быть уверены на 100% что это действительно не работает. И вот эта постоянная лотерея отбивает желание пользоваться протеусом.

Re: Проблема с DS1307.

Добавлено: Ср фев 16, 2011 07:53:59
zhu4er
O-LED писал(а):Главный недостаток эмуляции - когда у вас что то не работает, вы не можете быть уверены на 100% что это действительно не работает. И вот эта постоянная лотерея отбивает желание пользоваться протеусом.

поддерживаю :beer:

Re: Проблема с DS1307.

Добавлено: Ср фев 16, 2011 10:22:52
Danko
Вы не любите кошек? Да вы просто не умеете их готовить. :))

А почему последовательность должна быть именно такой:
Протеус -> набитые шишки -> проект в железе.

Я поступаю по другому:
Проект на макетке -> настройка проекта в протеусе.

Да именно настройка. Нужно подобрать(подогнать интервалы, поменять текст выводимый на LCD и пр.). Посмотреть четырехканальным осциллографом, померять напругу...

Ну в общем, а почему должно быть все черным или белым? Да и, что кроме протеуса других симуляторов нет? Например VMLAB. Хоть и мало камней и инструментарий не велик, но ведь это тоже инструмент.

И вообще: если вы изучите все тонкости и особенности Протеуса, то в последующем сможете использовать его даже и в первой, указанной мною, последовательности.

А кто не хочет изучать тонкости, так тонкости нужно изучать всего. И что никто не работал цифровым и аналоговым (стрелочным) мультиметрами ?

Re: Проблема с DS1307.

Добавлено: Ср фев 16, 2011 13:24:03
O-LED
Ну в общем, а почему должно быть все черным или белым?
Вот с этим согласен. Поэтому начинать полезно с эмулятора, когда еще и кода минимум, и схема не сложилась. И если все гладко - можно и закончить в нем же. Но как только ловишь крупную "непонятку" которой по всем предпосылкам не должно быть, - лучше перейти на железо.
А с быстрым программатором вообще разница между железом и эмулятором невелика. 10кб залетает за 1-2 сек. примерно столько же времени нужно чтоб в эмуляторе "обовить прошивку"

Re: Проблема с DS1307.

Добавлено: Ср фев 16, 2011 14:13:32
Dmitry Dubrovenko
zhu4er писал(а):А при чём тут миф о реальном железе?
А при том, что это самое "реальное" железо вовсе не такое реальное.
Сами же говорите: "На макетке", а потом вставите куда-нибудь в электроустановку, и будете гадать, от чего сбои.
Или, допустим, надо Вам отладить PIC16F628, а у него нет отладчика. Что будете делать? Отрабатывать на том, где есть, а потом переносить в 628? Это будет реальное железо?
Кроме того, даже партии МК могут отличаться. В этом плане, очень памятно, как один товарищ точно так же ругал Протеус, за то, что он не воспроизводит глюк, который был выявлен в МК по причине ошибки производителя.
Так вот, Протеус делает так, как должно быть по правилам. Лично я не встречал ни одной программы, отлаженной в Протеусе, которая не работала бы в реальном железе. А вот наоборот, сплошь и рядом. Пример - программа топикстартера. Написанная на крякнутом КодеВижене, программа отказывается работать в симуляторе. Оно и понятно.
А идеологию: "В железе же работает", я называю "китайской". Таких изделий у нас сейчас пруд пруди. Очень часто, они даже гарантийый срок отрабатывают. Зато дёшево.
А невозможность использования пары портов в отладчике?
А отсутствие синхронизации внутренних и внешних процессов?
И т.д.
Конечно, есть и у Протеуса недостатки. Но вообще-то, это недостатки не Протеуса, а моделей. А вот не задумывались почему производитель вместе с даташитом не распространяет модель девайса? А кто же тогда будет покупать "реальные отладчики"? Бизнес...
Собственно Danko уже всё чётко и конкретно сформулировал, посему заканчиваю этот жуткий оффтоп. :))