Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
21.12.2010, 17:28
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
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](images/attach/rar.gif) |
1.rar (22.2 Кб, 64 просмотров) |
|
|
|
|
22.12.2010, 00:53
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: DS1307 запутался
Индикатор не светится.
В протеус загрузите 7seg.cof вместо 7seg.hex и займитесь пошаговой отладкой.
Если это задержка, не будет работать, нет сброса значения переменной i.
Попробуйте заменить на и то компилятор может ее выбросить.
|
|
|
|
22.12.2010, 01:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
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.
|
|
|
|
22.12.2010, 07:10
|
|
Прописка
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 337
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: DS1307 запутался
Сообщение от OlegNZH
|
PS. а вообще DS1307 -бяка, я одно время , умучился ,перешёл на DS1302(питание просто сравните) ... на 07 одни сбои,Заказчики Достали....на 02- Никаких вопросов.
|
У меня уже лет 5 работает в часах. После того как, прошивку ПИКа отладил, ни разу не глючила. А в чем собстно глюки проявлялись ?
|
|
|
|
22.12.2010, 11:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
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);
}
|
|
|
|
22.12.2010, 16:08
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
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();
}; |
то часы сбрасываются каждый раз и даже появится индикация.
необходим для инициализации 1307.
Последний раз редактировалось CodeNameHawk; 22.12.2010 в 16:42.
|
|
|
|
22.12.2010, 18:35
|
|
Частый гость
Регистрация: 09.04.2007
Сообщений: 23
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: DS1307 запутался
Всем спасибо. Заработало при помощи цикла ФОР.
ЗЫ. Индикацию отключал дабы разгрузить процессор. Провда не знаю помогло аль нет.
Последний раз редактировалось SerGO_83; 22.12.2010 в 18:38.
|
|
|
|
22.12.2010, 18:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: DS1307 запутался
Сообщение от Drex
|
У меня уже лет 5 работает в часах. После того как, прошивку ПИКа отладил, ни разу не глючила. А в чем собстно глюки проявлялись ?
|
Дело в Питании. в DS1307-4.5V, в DS1302- 2V тянет .Если -бы Вы - с рекламщиками поработали, которые на Запитку 5V-100 А кидают 25м кабеля 0.75 кв.. Любая помеха,когда на пределе, сбрасывает.(Да и вообще не работает..)(на неделе на вышке в мороз...провода менял(не Часы- с Ними на на 02- порядок))
PS. я просто для Примера ..откуда глюки могут (А Именно- Сбрасывались).
Последний раз редактировалось OlegNZH; 22.12.2010 в 18:48.
|
|
|
|
22.12.2010, 19:37
|
|
Вид на жительство
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 181
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
|
Re: DS1307 запутался
Сообщение от SerGO_83
|
Индикацию отключал дабы разгрузить процессор. Провда не знаю помогло аль нет.
|
Это понятно.
На моем не помогло разгрузить проц. (2.4GHz целерон)
И при включении индикации в прерывании, до опроса кнопки не доходит.
|
|
|
|
25.12.2010, 13:06
|
|
Прописка
Регистрация: 16.04.2004
Сообщений: 201
Сказал спасибо: 337
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: DS1307 запутался
Сообщение от OlegNZH
|
Дело в Питании. в DS1307-4.5V, в DS1302- 2V тянет .Если -бы Вы - с рекламщиками поработали, которые на Запитку 5V-100 А кидают 25м кабеля 0.75 кв.. Любая помеха,когда на пределе, сбрасывает.(Да и вообще не работает..)(на неделе на вышке в мороз...провода менял(не Часы- с Ними на на 02- порядок))
PS. я просто для Примера ..откуда глюки могут (А Именно- Сбрасывались).
|
Понятно, мои-то в тепличных условиях работают
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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.
|
|