Страница 8 из 11
Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Чт фев 12, 2026 23:41:14
АлександрЛ
roman.com писал(а):а ещё лучше вообще без кнопок))
достал телефон... нажал на кнопочку в телефоне... и часы сами установили точное время.
А зачем телефон доставать?
Раз в сутки корректировать время, считывая его с какого-нибудь специализированного сайта в интернете..
Накрылся интернет- и у вас "время кончилось".
Добавлено after 1 hour 12 minutes 4 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=4788502#p4788502"]Так вроде б там задачка под нестандартно-крупноформатный была...[/uquote]
Так тут куча вариантов- к одному и тому же МК, с одной и той же прошивкой, можно подключить как "низковольтные" (которым достаточно питания 5 вольт), так и "высоковольтные" - с питанием 9~12~24 вольта, индикаторы, и ОА, и ОК, и, даже ВЛИ- всё зависит от применённых ключей в управлении анодами и катодами (или сеткам) индикаторов. В принципе- даже ГРИ типа "панаплекс" тоже можно использовать.
Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 00:38:13
VNS
[uquote="roman.com",url="/forum/viewtopic.php?p=4788617#p4788617"]в часах достаточно две кнопки... "set" и "+".[/uquote]
У данных устройств тоже можно оставить только две кнопки. Set - в обязательном варианте, Up или Down по желанию. Так как значение изменяется по кругу в любую сторону. Но имея для установки две кнопки, намного комфортнее производить установку.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 09:47:07
roman.com
две кнопки достаточно.
АлександрЛ писал(а):Накрылся интернет- и у вас "время кончилось".
поэтому я отключил синхронизацию по интернету и включил синхронизацию по телефону в ручном режиме.
всё под контролем.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 16:54:54
VNS
В качестве бонуса прошивка для ATtiny24A. Тактовая частота 8 МГц (Low = 0xE2; High = 0xDF).
Схема:

Алгоритм управления не изменился.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 17:05:03
Соник
Сейчас о5 напишут, что всё неправильно

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 17:13:14
BOB51
Обычно принято ориентироваться на то, что у задавшего вопрос в наличии имеется (з ранее предложенных вариантов).
А уже при согласовании варианта конструкции и средств разработки программ доводку до ума совместно делать.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 18:03:57
roman.com
[uquote="Соник",url="/forum/viewtopic.php?p=4788865#p4788865"]Сейчас о5 напишут, что всё неправильно[/uquote]
Да, сейчас напишут ))
две кнопки удобней чем три.
1. у меня на столе дома часы с кучей кнопок... но я пользуюсь только двумя... "set" и "+".
протянул руку... нащупал две кнопки... и на ощупь настроил время.
-нажали "set" мигают часы. -нажали "+" установили часы 0...23 часа.
-нажали "set" мигают минуты. -нажали "+" установили минуты 0...59 минут.
-нажали "set" ничего не мигает.
2. у меня на стене на работе часы с тремя кнопками... но я пользуюсь только двумя... "set" и "+".
встал на табуретку... протянул руку... нащупал две кнопки... и на ощупь настроил время.
-нажали "set" мигают часы. -нажали "+" установили часы 0...23 часа.
-нажали "set" мигают минуты. -нажали "+" установили минуты 0...59 минут.
-нажали "set" ничего не мигает.
3. и т.д.
Вывод:
две кнопки удобней чем три.
проверенно многолетней практикой.))
Добавлено after 4 minutes 5 seconds:
Re: Напишите прошивку для светодиодных часов (Соник - халявщик)
далее...
Схема:
-если вместо транзисторов поставить ещё два регистра то получим замечательные часы со статической индикацией))
Добавлено after 15 minutes 14 seconds:
Re: Напишите прошивку для светодиодных часов (Соник - халявщик)
далее...
-если вместо транзисторов и регистров взять МК побольше то получим замечательные часы со статической индикацией))
прикольно))

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 18:34:28
veso74
Часть кнопок и идея из часов "Электроника": две кнопки: +H и +M.
Clock: кварцевой, всегда идут "назад". Напр. через месяц: один раз +M. Конец настойки.
Несколько таких часов работают. Так проверяю и свои прогр. коды и идеи для часы на МК.
(можно плюс еще 2 кнопки: сброс минут и reset).
С большим количеством кнопок: все работает, все регулируется и все ОК (и секунд, и +/- удобно),
но с SET ... "Какая кнопка была для настройки? Где SET? Зачем нет реакции? Ах, да! Была другая кнопка" ... и т.д.
Лично с двумя кнопками удобнее.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 19:28:56
OKF
Это смотря для каких целей. Бывает что и 5-ти кнопок мало, хотелось бы ещё одну.)
Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Пт фев 13, 2026 19:33:48
BOB51
Если с режимом, обслуживающим одновременное нажатие нескольких кнопок, то и четырёх достаточно вполне будет.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 07:20:12
akl
[uquote="veso74",url="/forum/viewtopic.php?p=4788879#p4788879"]...всегда идут "назад". Напр. через месяц: один раз +M. Конец настойки...[/uquote]Если часы намеренно настроены на отставание (см. картинку) можно обойтись и 1 кнопкой. Установка по кругу с ускорением, аналогично автомобильным часам.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 13:07:51
roman.com
-если это просто часы то хватит две кнопки: +H и +M.
-если это часы с будильником то надо две кнопки: "set" и "+".
Добавлено after 13 minutes 52 seconds:
[uquote="roman.com",url="/forum/viewtopic.php?p=4788870#p4788870"]-если вместо транзисторов и регистров взять МК побольше то получим замечательные часы со статической индикацией[/uquote]
а если взять МК ещё больше то получим ещё больше замечательные часы со статической индикацией))

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 14:18:51
BOB51
Кыстати...
Любые светодиодные часейки на едином МК содержат автономный ("псевдопараллельный") процесс регенерации дисплея...
Обычно какой нибудь источник тактирования с прерыванием и набор обслуживающих то прерывание фрагментов.
Может и с опросом клавиатуры совещенным бысть... Но то уж кому чего интереснее...
Организация самой программы зависит от типа МК и возможностей системы команд. Оптимально на ассемблере, но вполне успешно и ЯВУ справляются...

А при наличии кучи лапок вполне реально и на матрицы перестроить - в том, что выше roman.com разрисовал вполне себе можно и на 5 позиций матриц 8*8 извратиться (динамическая развертка с раздельной регулировкой яркости минимум по каждой из позиций)...

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 14:34:15
VNS
[uquote="BOB51",url="/forum/viewtopic.php?p=4788866#p4788866"]А уже при согласовании варианта конструкции и средств разработки программ доводку до ума совместно делать.

[/uquote]
Мы как раз совместно и обсудили в ЛС, что кому нужно (чтобы Рома не мешал со своей Мурзилкой).

На основании высказанных пожеланий было написано три программы. Бонус для тини24 был сделан ради проверки - 1) "Влезет" ли код в данный МК с небольшими доработками в алгоритме. Как оказалось, ещё осталось свободно 50 слов для небольших добавлений при необходимости. 2) Проверил свечение не супер-яркого индикатора в таком алгоритме при указанных номиналах резисторов сегментов.
Вот собственно и всё. Каждый получил, то что хотел. Я, гимнастику для мозга, а остальные то, что пожелали.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 14:41:49
BOB51
Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 14:54:07
VNS
Приятных снов!

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 16:22:04
roman.com
BOB51 писал(а):Организация самой программы зависит от типа МК и возможностей системы команд. Оптимально на ассемблере, но вполне успешно и ЯВУ справляются...
ЯВУ ? ты пишешь для МК на ЯВУ ?
никогда не писал для МК на ЯВУ...
покажи пример...

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 16:23:15
Starichok51
roman.com писал(а):получим ещё больше замечательные часы со статической индикацией
заболбал ты уже всех со своей статической индикацией.
Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 17:05:14
roman.com
так было задумано.

Re: Напишите прошивку для светодиодных часов (Соник - халявщ
Добавлено: Сб фев 14, 2026 17:17:51
OKF
[uquote="roman.com",url="/forum/viewtopic.php?p=4789150#p4789150"]никогда не писал для МК на ЯВУ...
покажи пример...[/uquote]
Рома, ты прикалываешься?
Спойлер
Код: Выделить всё
#include "main.h"
#include "led_classic.h"
static const uint8_t segment[] = { SEGMENT };
static const uint8_t common[] = { COMMON };
void ledInit() {
for (uint8_t i = 0; i < sizeof(segment); i++)
out(segment[i]);
for (uint8_t i = 0; i < sizeof(common); i++)
out(common[i]);
}
static uint8_t segment_buffer[sizeof(common)];
// Вызов с периодом <= 12 / COMMON_MAX, ms (>= 60Hz)
void ledTick() {
static uint8_t com;
com_off(common[com]);
if (++com >= sizeof(common))
com = 0;
for (uint8_t i = 0; i < sizeof(segment); i++)
write(segment[i], !!(segment_buffer[com] & 1<<i) == CC);
com_on(common[com]);
}
static const uint8_t font[] PROGMEM = {
//gfedcba
0b0111111, //0 a
0b0000110, //1 --
0b1011011, //2 f| |b
0b1001111, //3 g--
0b1100110, //4 e| |c
0b1101101, //5 -- .h
0b1111101, //6 d
0b0000111, //7
0b1111111, //8
0b1101111, //9
0b1110111, //A
0b1111100, //b
0b0111001, //C
0b1011110, //d
0b1111001, //E
0b1110011 //F
//gfedcba
};
#define H_SEGMENT (1<<7)
static uint8_t getFont(uint8_t dig) {
return pgm_read_byte(&font[dig & 0x0f]);
}
static uint8_t dot_position;
// right justify
void display(uint16_t bin) {
bool nz = false;
uint8_t i = 0;
for (uint16_t div = DIVIDER; div > 1; div /= 10, i++) {
if (bin / div)
nz = true;
segment_buffer[i] = 0;
if (nz)
segment_buffer[i] = getFont(bin / div);
bin %= div;
}
segment_buffer[i] = getFont(bin);
if (dot_position)
segment_buffer[dot_position - 1] |= H_SEGMENT;
}
void setDot(uint8_t pos) {
dot_position = pos;
}