Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

DS1307 запутался

Непрочитано 21.12.2010, 17:28  
SerGO_83
Частый гость
 
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SerGO_83 на пути к лучшему
По умолчанию DS1307 запутался

Вот изучаю часики, вкупе с мега16. пишу на CVAVR
Все нормально пашет. Использую аппаратный ТВИ, прерывание от RTC с частотой 1 Гц, затем считывание данных с микросхемы. вывод на индикацию через прерывание по таймеру. Сутки проходили отлично. но есть одно НО!
загваздка в установке времени
в основном цикле программы опрашивается кнопка, при нажатии которой должно происходить установка времени. Но кнопка срабатывает один раз.
while (1)
{
PORTB.7=1;
if (PIND.7==0)
{
PORTB.7=0;
rtc_set_date(0x31,0x12,0x10);
while (i‹5) {i++;}
rtc_set_time(0x15,0x08,0x00);
while (i‹5) {i++;}
rtc_init(0,1,0);

}

};
Где то происходит затык! Не могу понять чо к чему. ПортБ7 использую для контроля нажатия кнопки. При Вот здесь вот (http://my-avr.at.ua/publ/1-1-0-24) пример на программном решении ds1307. А мне охота понять именно аппаратный
Вложения:
Тип файла: rar 1.rar (22.2 Кб, 64 просмотров)
Реклама:
SerGO_83 вне форума  
Непрочитано 22.12.2010, 00:53  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: DS1307 запутался

Индикатор не светится.
В протеус загрузите 7seg.cof вместо 7seg.hex и займитесь пошаговой отладкой.
Код:
while (i‹5) {i++;}
Если это задержка, не будет работать, нет сброса значения переменной i.
Попробуйте заменить на
Код:
for(i=0;i‹5;i++)
и то компилятор может ее выбросить.
CodeNameHawk вне форума  
Непрочитано 22.12.2010, 01:37  
OlegNZH
Почётный гражданин KAZUS.RUN
 
Регистрация: 28.02.2010
Сообщений: 2,294
Сказал спасибо: 52
Сказали Спасибо 460 раз(а) в 391 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: DS1307 запутался

пустышку - выкинет,когда есть осмысленное - оставит,


main(void){
char i, foo;
for(i=0;i‹5;i++){foo=1;};
}

не прав ..for(i=0;i‹5;i++); тоже компилируется (CV204)


PS. а вообще DS1307 -бяка, я одно время , умучился ,перешёл на DS1302(питание просто сравните) ... на 07 одни сбои,Заказчики Достали....на 02- Никаких вопросов.

Последний раз редактировалось OlegNZH; 22.12.2010 в 02:18.
OlegNZH вне форума  
Непрочитано 22.12.2010, 07:10  
Drex
Прописка
 
Регистрация: 16.04.2004
Сообщений: 198
Сказал спасибо: 339
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Drex на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от OlegNZH Посмотреть сообщение
PS. а вообще DS1307 -бяка, я одно время , умучился ,перешёл на DS1302(питание просто сравните) ... на 07 одни сбои,Заказчики Достали....на 02- Никаких вопросов.
У меня уже лет 5 работает в часах. После того как, прошивку ПИКа отладил, ни разу не глючила. А в чем собстно глюки проявлялись ?
Drex вне форума  
Непрочитано 22.12.2010, 11:02  
andries5
Почётный гражданин KAZUS.RUN
 
Регистрация: 19.02.2008
Сообщений: 1,840
Сказал спасибо: 128
Сказали Спасибо 613 раз(а) в 430 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: DS1307 запутался

Перед
while (i‹5) {i++;}
добавить i=0; и убрать rtc_init(0,1,0);
if (PIND.7==0)
{
PORTB.7=0;
rtc_set_date(0x31,0x12,0x10);
i=0;
while (i‹5) {i++;}
rtc_set_time(0x15,0x08,0x00);
i=0;
while (i‹5) {i++;}
//rtc_init(0,1,0);
}
andries5 вне форума  
Непрочитано 22.12.2010, 16:08  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от OlegNZH Посмотреть сообщение
пустышку - выкинет,когда есть осмысленное - оставит,

main(void){
char i, foo;
for(i=0;i‹5;i++){foo=1;};
}
Чтобы быть уверенным, что компилятор оставит, необходимо
переменную foo объявить глобальной с классификатором volatile

Код:
volatile unsigned char foo;
Цитата:
не прав ..for(i=0;i‹5;i++); тоже компилируется (CV204)
я предупредил, что компилятор может выбросить за ненадобностью, ваш код
Код:
for(i=0;i‹5;i++){foo=1;};
аналогично.

если применить,
Код:
volatile unsigned char foo;
как писал выше и поправить код функции main на

Код:
rtc_init(0,1,0);

while (1)
{                                                 
        PORTB.7=1;
        if (PIND.7==0)
        {
                PORTB.7=0;
                rtc_set_date(0x31,0x12,0x10);
                for(i=0;i‹5;i++)
                {
                        foo=1;
                }  
                rtc_set_time(0x15,0x08,0x00);
                for(i=0;i‹5;i++)
                {
                        foo=1;
                }  
        }
        display();
};
то часы сбрасываются каждый раз и даже появится индикация.
Код:
rtc_init(0,1,0);
необходим для инициализации 1307.

Последний раз редактировалось CodeNameHawk; 22.12.2010 в 16:42.
CodeNameHawk вне форума  
Непрочитано 22.12.2010, 18:35  
SerGO_83
Частый гость
 
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
SerGO_83 на пути к лучшему
По умолчанию Re: DS1307 запутался

Всем спасибо. Заработало при помощи цикла ФОР.
ЗЫ. Индикацию отключал дабы разгрузить процессор. Провда не знаю помогло аль нет.

Последний раз редактировалось SerGO_83; 22.12.2010 в 18:38.
SerGO_83 вне форума  
Непрочитано 22.12.2010, 18:39  
OlegNZH
Почётный гражданин KAZUS.RUN
 
Регистрация: 28.02.2010
Сообщений: 2,294
Сказал спасибо: 52
Сказали Спасибо 460 раз(а) в 391 сообщении(ях)
OlegNZH на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от Drex Посмотреть сообщение
У меня уже лет 5 работает в часах. После того как, прошивку ПИКа отладил, ни разу не глючила. А в чем собстно глюки проявлялись ?
Дело в Питании. в DS1307-4.5V, в DS1302- 2V тянет .Если -бы Вы - с рекламщиками поработали, которые на Запитку 5V-100 А кидают 25м кабеля 0.75 кв.. Любая помеха,когда на пределе, сбрасывает.(Да и вообще не работает..)(на неделе на вышке в мороз...провода менял(не Часы- с Ними на на 02- порядок))
PS. я просто для Примера ..откуда глюки могут (А Именно- Сбрасывались).

Последний раз редактировалось OlegNZH; 22.12.2010 в 18:48.
OlegNZH вне форума  
Непрочитано 22.12.2010, 19:37  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от SerGO_83 Посмотреть сообщение
Индикацию отключал дабы разгрузить процессор. Провда не знаю помогло аль нет.
Это понятно.
На моем не помогло разгрузить проц. (2.4GHz целерон)
И при включении индикации в прерывании, до опроса кнопки не доходит.
CodeNameHawk вне форума  
Непрочитано 25.12.2010, 13:06  
Drex
Прописка
 
Регистрация: 16.04.2004
Сообщений: 198
Сказал спасибо: 339
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Drex на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от OlegNZH Посмотреть сообщение
Дело в Питании. в DS1307-4.5V, в DS1302- 2V тянет .Если -бы Вы - с рекламщиками поработали, которые на Запитку 5V-100 А кидают 25м кабеля 0.75 кв.. Любая помеха,когда на пределе, сбрасывает.(Да и вообще не работает..)(на неделе на вышке в мороз...провода менял(не Часы- с Ними на на 02- порядок))
PS. я просто для Примера ..откуда глюки могут (А Именно- Сбрасывались).
Понятно, мои-то в тепличных условиях работают
Drex вне форума  
 

Метки
ds1307
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Неправильно симулируется DS1307 nonamedov Proteus 9 29.10.2010 01:22
ATmega64 и DS1307 sersne Микроконтроллеры, АЦП, память и т.д 1 08.06.2010 21:54
ATmega128 + DS1307 alberio Микроконтроллеры, АЦП, память и т.д 0 24.05.2010 03:16
RTC DS1307, контроллер, LCD... какая идеология работы? chapa Микроконтроллеры, АЦП, память и т.д 4 24.11.2009 18:28
DS1307 не запускается shaggyone Микроконтроллеры, АЦП, память и т.д 9 09.10.2009 07:18


Часовой пояс GMT +4, время: 19:22.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.