Форум РадиоКот • Просмотр темы - Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2)
Сообщения без ответов | Активные темы
Страница 5 из 9
[ Сообщений: 163 ]
, , , , , , , ,
Автор
Сообщение
TovsCat
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вс ноя 18, 2012 18:13:43
Зарегистрирован: Пт апр 27, 2012 15:48:35Сообщений: 21
Рейтинг сообщения: 0
Спасибо что откликнулись, но после вашего ответа ,я понял что программировать у меня пока не сложилось, и похоже с математикой тоже....
.
С вызовом функции вы наверное дали исчерпывающий ответ, кто в курсе наверное сразу всё понял, но не я, мне так и непонято , зачем эту функцию вызывать.
Но дело не в ней, если ее можно упростить, я все равно не могу сложить формулу в работающий вид.
Вот так в моем понимании она должна вычислять день недели
Спойлер Код:
/***************************************************** CodeWizardAVR V2.04.4a Advanced Chip type : ATmega8 AVR Core Clock frequency: 4,000000 MHz *****************************************************/ #include <mega8.h> #asm .equ __lcd_port=0x12 ;PORTD #endasm #include <lcd.h> #asm .equ __ds1302_port=0x15 ;PORTC .equ __ds1302_io=5 .equ __ds1302_sclk=4 .equ __ds1302_rst=3 #endasm #include <ds1302.h> unsigned char hour=1,min=1,sek=1; //часы, минуты, секунды unsigned char day=18,month=11,year=12; //день, месяц, год unsigned char myday=0; // день недели unsigned int y=0, m=0; void main(void) { ACSR=0x80; SFIOR=0x00; // DS1302 Real Time Clock initialization // Trickle charger: Off rtc_init(0,0,0); lcd_init(16); while (1) { rtc_get_time(&hour,&min,&sek); //считать время rtc_get_date(&day,&month,&year); //считать дату // ---------- вычислить день недели по дате ---------- y = year+2000; m=month; if (m > 2) { m -= 2; } else { m += 10; y--; } myday = (((day) + y + (y>>2) + ((31 * m) / 12)) % 7); if (myday == 0) myday = 7; //- lcd_gotoxy(0,0); lcd_putchar(hour/10+0x30); lcd_putchar(hour%10+0x30); lcd_putchar(':'); lcd_putchar(min/10+0x30); lcd_putchar(min%10+0x30); lcd_putchar('.'); lcd_putchar(sek/10+0x30); lcd_putchar(sek%10+0x30); lcd_gotoxy(0,1); lcd_putchar(day/10+0x30); lcd_putchar(day%10+0x30); lcd_putchar('.'); lcd_putchar(month/10+0x30); lcd_putchar(month%10+0x30); lcd_putchar('.'); lcd_putsf("20"); lcd_putchar((year/10)%10+0x30); lcd_putchar(year%10+0x30); lcd_putchar(' '); lcd_putchar(myday%10+0x30); }; }
Но, моя математика пока стабильную ошибку на 1 день недели, и как тут проверить если год высокосный и не высоксный?, поправьте если можно код, пожалуйста.
Вернуться наверх
Реклама
Danko
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вс ноя 18, 2012 20:04:58
Сверлит текстолит когтями
Карма: 13
Рейтинг сообщений: 41
Зарегистрирован: Пн окт 13, 2008 11:45:54Сообщений: 1287Откуда: РФ, Крым, г.Бахчисарай
Рейтинг сообщения: 0
У меня формула упрощенная (урезанная).
Первоисточником была
эта формула .
А вот примеры на разных языках .
Я для экономии памяти МК формулу упростил, но у Вас если в этом проблемы нет попробуйте пойти от первоисточника так сказать.
_________________ Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений. ---------- Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Вернуться наверх
Реклама
TovsCat
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вс ноя 18, 2012 22:51:31
Зарегистрирован: Пт апр 27, 2012 15:48:35Сообщений: 21
Рейтинг сообщения: 0
Не знаю почему у меня по по формуле (урезаной) получился сдвиг недели на плюс один день, я просто в код который я показал выше, добавил условие
Код:
New_myday=myday-1; if (New_myday == 0) New_myday = 7; //и вывод на дисплей lcd_putchar(New_myday%10+0x30);
Проверил 2112 -2013 год и выбочно до 2099.
Показывает, день недели точно....
СПАСИБО
Danko это таки с помощью вашей формулы все получилось
Вернуться наверх
O-LED
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вс ноя 18, 2012 23:18:03
Мудрый кот
Карма: 25
Рейтинг сообщений: 79
Зарегистрирован: Вт окт 05, 2010 01:08:57Сообщений: 1800
Рейтинг сообщения: 0
Цитата:
Не знаю почему у меня по по формуле (урезаной) получился сдвиг недели на плюс один день
потому что по этой формуле неделя начинается с воскресенья.
_________________ KIT
Вернуться наверх
Реклама
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
Подробнее>>
NickNI
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вт ноя 20, 2012 15:39:30
Прорезались зубы
Карма: 8
Рейтинг сообщений: 14
Зарегистрирован: Ср май 19, 2010 11:15:36Сообщений: 237Откуда: Украина
Рейтинг сообщения: 0
TovsCat писал(а):
Не знаю почему у меня по по формуле (урезаной) получился сдвиг недели на плюс один день,
Просто на заметку: Учтите, что в модели протеуса при некотором стечении исходного кода получается 8 дней в недели
_________________ Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Вернуться наверх
Реклама
santy
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Ср дек 26, 2012 14:26:40
Открыл глаза
Зарегистрирован: Пт янв 20, 2012 16:09:11Сообщений: 62Откуда: Татарстан
Рейтинг сообщения: 0
Valeri S писал(а):
M169 писал Доброго времени суток. У меня к вам просьба, посмотрите, пожалуйста, на секундное двоеточие несколько минут внимательно, что Вы видите? простите что стаким опозданием отвечаю на ваш вопрос. эти часы я собрал для своих друзей по работе. если посмотреть на точки то они, как маятник тридцать секунд в одну сторону потом не большая заминка и в обратную сторону. с уважением Валерий
Можно узнать что там с точками? вопрос решили или нет? у меня такая же беда...
только два раза по 10 сек. и один 15 сек.
Последний раз редактировалось santy Чт дек 27, 2012 07:53:02, всего редактировалось 2 раз(а).
Вернуться наверх
Реклама
santy
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Чт дек 27, 2012 07:50:54
Открыл глаза
Зарегистрирован: Пт янв 20, 2012 16:09:11Сообщений: 62Откуда: Татарстан
Рейтинг сообщения: 0
Еще небольшая подсветка сегментов идет, правда днем не заметно, только ночью, из-за чего интересно?
Вернуться наверх
m169
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Чт дек 27, 2012 11:10:54
Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Сб ноя 20, 2010 15:47:40Сообщений: 46Откуда: Кирово-Чепецк
Рейтинг сообщения: 0
santy писал(а):
Еще небольшая подсветка сегментов идет, правда днем не заметно, только ночью, из-за чего интересно?
Понизьте напряжение питания на индикаторах. С помощью подстроичных резисторов, в цепи DC-DC преобразователей.
_________________ Можешь сделать лучше? Сделай!
Вернуться наверх
santy
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Чт дек 27, 2012 13:14:42
Открыл глаза
Зарегистрирован: Пт янв 20, 2012 16:09:11Сообщений: 62Откуда: Татарстан
Рейтинг сообщения: 0
m169 писал(а):
Понизьте напряжение питания на индикаторах. С помощью подстроичных резисторов, в цепи DC-DC преобразователей.
спасибо m169, попробую понизить.
Вернуться наверх
Реклама
os1125
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вт апр 16, 2013 14:02:45
Зарегистрирован: Пн фев 11, 2013 10:36:58Сообщений: 4
Рейтинг сообщения: 0
респект автору
большое спасибо за труд.
Вернуться наверх
svinuk
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вт май 07, 2013 15:14:19
Зарегистрирован: Сб апр 02, 2011 09:49:50Сообщений: 13
Рейтинг сообщения: 0
os1125, очь красиво. Мне нравится. Расскажите, пожалуйста, подробней о корпусе и светофильтрах.
И печатку выложите, если не сложно
_________________ Не доверяйте лошади с фиолетовыми бровями
Последний раз редактировалось svinuk Ср май 08, 2013 12:30:16, всего редактировалось 1 раз.
Вернуться наверх
svinuk
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Ср май 08, 2013 09:36:29
Зарегистрирован: Сб апр 02, 2011 09:49:50Сообщений: 13
Рейтинг сообщения: 0
Подскажите, пожалуйста, откуда взять +5В и +9В для питания индикаторов, ведь основное питание у нас 15В.
_________________ Не доверяйте лошади с фиолетовыми бровями
Вернуться наверх
NickNI
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Пт май 31, 2013 19:46:26
Прорезались зубы
Карма: 8
Рейтинг сообщений: 14
Зарегистрирован: Ср май 19, 2010 11:15:36Сообщений: 237Откуда: Украина
Рейтинг сообщения: 0
svinuk писал(а):
...откуда взять +5В и +9В для питания индикаторов, ведь основное питание у нас 15В.
Посмотреть схему в первом посте... Два линейных стабилизатора в каскаде. После первого 9В, после второго 5В... Или вопрос в другом?
_________________ Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Вернуться наверх
Welten
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Сб июн 01, 2013 22:37:27
Потрогал лапой паяльник
Карма: 8
Рейтинг сообщений: 21
Зарегистрирован: Сб янв 16, 2010 22:51:45Сообщений: 325
Рейтинг сообщения: 0
Эх, жаль автор крайней печатки не заходит на форум(
Вернуться наверх
os1125
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вс июн 02, 2013 16:46:38
Зарегистрирован: Пн фев 11, 2013 10:36:58Сообщений: 4
Рейтинг сообщения: 0
печатка тут, только сегменты индикаторов неправильно обозначены. корпус делал из мелкой вагонки,стекло тонировал пленкой, оконтовка из мебельной фурнетуры.
Вернуться наверх
Welten
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вс июн 02, 2013 18:03:24
Потрогал лапой паяльник
Карма: 8
Рейтинг сообщений: 21
Зарегистрирован: Сб янв 16, 2010 22:51:45Сообщений: 325
Рейтинг сообщения: 0
Вернуться наверх
svinuk
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Пн авг 05, 2013 14:48:04
Зарегистрирован: Сб апр 02, 2011 09:49:50Сообщений: 13
Рейтинг сообщения: 0
Приветствую всех. Выложите кто-нибудь фьюзы, а то в первом посте все ссылки мертвы. Спасибо.
_________________ Не доверяйте лошади с фиолетовыми бровями
Вернуться наверх
NickNI
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Пн авг 05, 2013 21:36:22
Прорезались зубы
Карма: 8
Рейтинг сообщений: 14
Зарегистрирован: Ср май 19, 2010 11:15:36Сообщений: 237Откуда: Украина
Рейтинг сообщения: 1
svinuk писал(а):
...Выложите кто-нибудь фьюзы, а то в первом посте все ссылки мертвы...
Нашел среди архивов
Danko Вложение:
Fuse.zip [81.54 KiB]
Скачиваний: 351
_________________ Жизнь - цепь, а мелочи в ней звенья. Нельзя звену не придавать значения!
Вернуться наверх
svinuk
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Вт авг 06, 2013 15:11:59
Зарегистрирован: Сб апр 02, 2011 09:49:50Сообщений: 13
Рейтинг сообщения: 0
Премного благодарствую:)
_________________ Не доверяйте лошади с фиолетовыми бровями
Вернуться наверх
tony_art
Заголовок сообщения: Re: Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2
Добавлено: Чт авг 15, 2013 21:12:31
Родился
Зарегистрирован: Чт авг 15, 2013 21:05:06Сообщений: 3Откуда: Москва
Рейтинг сообщения: 0
NickNI писал(а):
svinuk писал(а):
...откуда взять +5В и +9В для питания индикаторов, ведь основное питание у нас 15В.
Посмотреть схему в первом посте...
Я конечно глубоко извиняюсь, но в первом посту - все ссылки мёртвые!
Возможно-ли их обновить? Или выложить схему?
Вернуться наверх
Страница 5 из 9
[ Сообщений: 163 ]
, , , , , , , ,
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения