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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
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.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
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
Прописка
 
Аватар для Drex
 
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 337
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
Drex на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от OlegNZH Посмотреть сообщение
PS. а вообще DS1307 -бяка, я одно время , умучился ,перешёл на DS1302(питание просто сравните) ... на 07 одни сбои,Заказчики Достали....на 02- Никаких вопросов.
У меня уже лет 5 работает в часах. После того как, прошивку ПИКа отладил, ни разу не глючила. А в чем собстно глюки проявлялись ?
Drex вне форума  
Непрочитано 22.12.2010, 11:02  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
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
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
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.RU
 
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
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
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: DS1307 запутался

Сообщение от SerGO_83 Посмотреть сообщение
Индикацию отключал дабы разгрузить процессор. Провда не знаю помогло аль нет.
Это понятно.
На моем не помогло разгрузить проц. (2.4GHz целерон)
И при включении индикации в прерывании, до опроса кнопки не доходит.
CodeNameHawk вне форума  
Непрочитано 25.12.2010, 13:06  
Drex
Прописка
 
Аватар для Drex
 
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 337
Сказали Спасибо 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, время: 03:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot