Зарегистрирован: Пт сен 18, 2009 08:38:57 Сообщений: 152
Рейтинг сообщения:0
AI_Disable писал(а):
Тоже решил себе часики сделать... Вот только одна проблемка: подскажите алгоритм подсчёта дня недели, если известна дата.
Да все просто - берется произвольный день в прошлом, у которого известен день недели (лучше понедельник). Например 30 ноября 2009 года был вторник. Далее считается количество дней с этой даты с учетом количества дней в месяцах и високосных годов (каждый 4 год, кроме тех, которые на 00 заканчиваются). Ну и остаток от деления количества дней на 7 - это номер дня недели.
Всё бы хорошо, но я не зря сказал, что известна только дата. А вот количество дней как вычислить? Или разумнее будет не нагружать МК вычислениями, а завести отдельную переменную и делать ей ++ каждый день?
Зарегистрирован: Пт сен 18, 2009 08:38:57 Сообщений: 152
Рейтинг сообщения:0
Что значит известна только дата? я же написал как зная дату определить день недели.
вот конкретный кусок из моего варианта часов. вроде работает (хотя досконально непроверял). единственное будет лажать каждые 100 лет (лень было проверку на нулевые года делать), ну да я до следующего такого года не доживу.
unsigned int wd;
unsigned int day = 0;
char dayinmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; // количество дней в месяце
day = 365 * year + dayinmonth[month-1] + date + year>>2 - 2; // количество дней с первого понедельника (20)00 года
wd = day - (day / 7) * 7 ;
Зарегистрирован: Пт сен 18, 2009 08:38:57 Сообщений: 152
Рейтинг сообщения:0
AI_Disable писал(а):
stalker_radiokot писал(а):
... + year>>2 - 2;
Зачем этот кусок? Зачем сдвигать год на 2 бита, вычитать 2 и прибавлять к кол-ву дней?
к общему количеству дней из расчета 365 дней в году прибавляет количество вискосных годов (по одному дню в год, сдвиг на 2 бита - деление на 4, т.к. високосный год каждый четвертый) и вычитается из полученной цифры 2, т.к. первое января 2000 года был вторник (что бы дальше проще считалось)
Перемотал трансформатор ,один фиг без нагрузки 32 вольта ,а под нагрузкой (светодиод) 3,5 вольта.Может кто-нибудь объяснит подробно ,как менять частоту ШИМ ? Я так понял она контроллером задается.И как поднять константу ,слышал что при ее увеличении поднимается напруга на вторичке.Я в этом пока не силен
Перемотал трансформатор ,один фиг без нагрузки 32 вольта ,а под нагрузкой (светодиод) 3,5 вольта Похоже на то что нагружаешь ты его напямую(транс) Переменка все-таки выходит с него ,а как извесно диод не лампочка! Светиком нагрузку не проверишь почеловече,резистор тут нужен,или лампочка на 24В будет самое то! Тока лампочку 90мА,а не фару с КАМАЗА!Или как вариант 2х12В лампочки с гирлянды,думаю пройдет.
Led С ШИМом поиграться нужно будет потом(пищать в дежурном режиме будет), НО, всё равно напряжение малО! Минимум 12 должно быть (у меня 15 вольт). Тогда попробуй увеличить число витков,(если зазор нормальный).
Временно собрал генератор на 555 таймере.Все сразу заработало ,но под нагрузкой 8,5 вольт ,без нагрузки 60 вольт. Так что дело в ШИМ в большей степени ,тем более частота в моей схеме идет с пика ,поэтому мне именно мою конструкцию добить нужно.
что вы геморроем страдаете ? конечно будет на ХХ неимоверная напруга , потому как у вас обратноходовый генератор получается. вместо диодного моста поставьте один диод в прямом включении. т.е. чтобы включение диода проходило при накачке первички. иначе у вас будут выбросы напряжения при отключенной первичке, которые без ОС будут достигать максимального значения ограниченного многими параметрами.
можете попробовать ещё поставить в первичку снаббер - ситуация может немного улучшится (почему может ? потому что связь обмоток никакущая и по идее и так срабатывает диод полевика).
Так что дело в ШИМ в большей степени ,тем более частота в моей схеме идет с пика
У меня же тоже на ПИКе, и тем не менее - работает. Напрягает только свист в дежурном режиме, тоже разбираюсь пока, где в прошивке можно увеличить частоту.
Так что дело в ШИМ в большей степени ,тем более частота в моей схеме идет с пика
У меня же тоже на ПИКе, и тем не менее - работает. Напрягает только свист в дежурном режиме, тоже разбираюсь пока, где в прошивке можно увеличить частоту.
Хочу спросить у тех, кто собирал питание на 555 - ой для вращающегося транса. Требуется ли устанавливать полевик на радиатор. Сильно греется или нет? Спасибо.
Хочу спросить у тех, кто собирал питание на 555 - ой для вращающегося транса. Требуется ли устанавливать полевик на радиатор. Сильно греется или нет? Спасибо.
Немного назад есть мои сообшения, там схема генератора на 555 - ой, с полевиком, уже правдо нескажу какой полевик, помоему из серии IRFZ44... Всё работает без теплоотводов, транзистор холодный.
P.S. ешёбы ему греться
Хочу спросить у тех, кто собирал питание на 555 - ой для вращающегося транса. Требуется ли устанавливать полевик на радиатор. Сильно греется или нет? Спасибо.
у меня ирф540, греется существенно, без радиатора через минут 5 в пальцы печет если трогать,
вся конструкция (без моторчика естественно) потребляет 90мА, в чем причина нагрева - не знаю, осцилографа нет...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 233
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения