ARV Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 2 минуты назад, demiurg1978 сказал: У меня подход - дробление ВСЕХ долгих процессов. Это сделано из-за привязки к системному тику. Никаких долгих циклов. Итерация основного цикла должна с запасом упаковаться в системный тик. В основном это 1 мс. 2 минуты назад, Alex сказал: Да не понять ещё таких алгоритмов некоторым Зато некоторым ещё как понять! Подход, конечно, выглядит разумным и даже в чем-то предпочтительным перед традиционным "последовательным" исполнением задач... Но сколько гемору он приносит! В последнем проекте, о котором я уже сто раз говорил (цветомузыка), я применил именно этот подход, только длительность итерации главного цикла у меня 10 мс. Подумал, что если сделать реже, то будет заметно на глаз несовпадение цветомузыкального эффекта с музыкой. Не так-то просто сделать какой-то эффект "дробным" образом... Куча статических переменных, всякие "состояния" и т.п.... А потом смотрю на вот это вот Скачать видео и думаю: ну и где профит? Люди написали скетч, где в одной непрерывной функии на 100500 строк делают все - и красиво же! И не парятся ни о чем... А я сейчас сижу и думаю: как при моем подходе сделать вот точно такой же эффект? И теряюсь... Памяти уже нет - вся по статическим массивам разошлась. А у них, благодаря работе в одной непрерывной функции, большинство массивов локальные. То есть если у меня 3 эффекта, то это 3 статических массива. А если у них 3 эффекта - то это 3 массива с классом auto, то есть локальные. Т.к. эффекты работают поочередно, то одна и та же память в разных режимах работает на разные эффекты... Вы скажете - юзай динамическое выделение памяти - так см. выше: гемор же... 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 Роман (если не ошибаюсь ?), я не говорю о том, какой вариант лучше/хуже, я говорю о том, что нельзя какие-либо варианты называть неприличными словами Как уже сказали выше, всё зависит от задачи. Если программа позволяет тупо в линейном порядке обновлять данные и последовательно ещё что-либо делать - почему бы и нет ? Но нельзя только по умению мыслить однонаправленно, судить о чём то. При этом, уверенно и прилюдно об этом говорить . 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
ARV Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 2 минуты назад, Alex сказал: При этом, уверенно и прилюдно об этом говорить Я понял. Стараюсь изо всех сил прилюдно молчать... но не всегда выходит И потом: если я промолчу - как вы узнаете, что у меня есть, что сказать, пусть и гадость? 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Alex Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 Про "гадость" - это, вообще-то, не в Ваш огород камушек От Вас гадостей я пока ещё не слышал. Меня посчитали неправым, обосновав это каким-то непонятным аргументом (приведены какие-то магические цифры, ничего незначащие). Совет другого человека вообще посчитали глупым, и также необоснованно. Хотя совет очень хороший. Ну что тут можно сказать ... Пришёл человек и запостил ради того, чтобы запостить. При этом, облив всех нечистью 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Starichok Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 26 минут назад, Alex сказал: Да не понять ещё таких алгоритмов некоторым. Просто в голове уложиться они не могут. Научатся что-то там кодить, выведут на дисплей строчку и бегом на форум мания величия? если ты профессиональный программист - ты король? а если самоучка - то так, фуета безлошадная? и хоть я - самоучка, мне приходилось кодить и для промышленных приборов. причем, на достаточно высоком уровне, а не кое как... и "линейный" код я знаю, как правильно построить. 0 Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 Ну вот, очередной пост, лишь бы запостить и оскорбить. И опять неаргументированно. 12 минуты назад, Starichok сказал: мания величия? ты король? Где я о своих проф. навыках говорил ? Где я хлестался своими умениями ? Я - тоже самоучка. И мне тоже много чего приходилось кодить. И опыт у меня немаленький. И работа моя с этим напрямую связана. И что ? Я этим не хлещусь. И мериться органами ни с кем не собираюсь. А вот Вам бы с манией немного приостановиться. Наровите выставить себя опытней других. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
demiurg1978 Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 2 часа назад, ARV сказал: Фокус: __C_task main (void) { wdt_enable (WDTO_15_MS); sleep_mode_init (); init_soft_timers (); Init_Events (); __enable_interrupt (); #ifdef __LOGO__ logo (); #endif while (1) { __watchdog_reset (); proc_device (); kbd_drv (); info_service (); proc_outputs (); Process_Events (); } } //======================================================================== struct tab_logo_t __flash tab_logo [] = { {0, SEG_A}, // 0 {0, SEG_B}, // 1 {0, SEG_C}, // 2 {0, SEG_D}, // 3 {0, SEG_E}, // 4 {0, SEG_F}, // 5 {0, SEG_G}, // 6 {0, SEG_H}, // 7 {1<<LED_GREEN, 0}, // 8 {1<<LED_RED, 0}, // 9 {0, 0}, // 10 {(1<<LED_GREEN | 1<<LED_RED), (SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G | SEG_H)}, // 11 {0, 0}, // 12 {(1<<LED_GREEN | 1<<LED_RED), (SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F | SEG_G | SEG_H)}, // 13 {0, 0}, // 14 {0xFF, 0xFF}, // 15 }; //======================================================================== //======================================================================== void logo (void) { u08 _logo = 0; u08 logo_timer = 0; u08 cnt = 0; u08 i; soft_timer ST_LOGO; while (1) { __watchdog_reset (); switch (_logo) { case 0: soft_spi_init (); set_leds_buf (0); out_dsp_buf (0); set_soft_timer (ST_LOGO, OUTPUTS_PERIOD, OUTPUTS_PERIOD); _logo = 1; break; case 1: if (handle_soft_timer (ST_LOGO)) { if (++logo_timer >= LOGO_STEP) { logo_timer = 0; struct tab_logo_t __flash *ptr = tab_logo; ptr += cnt; if (ptr -> leds == 0xFF && ptr -> segments == 0xFF) return; set_leds_buf (ptr -> leds); for (i = 0; i < MAX_LED_IND; i++) dsp_buf [i] = ptr -> segments; cnt++; } i = 0; soft_spi_transf_buf [i++] = get_leds_buf (); for (u08 j = 0; j < MAX_LED_IND; j++) soft_spi_transf_buf [i++] = dsp_buf [j]; for (i = 0; i < SOFT_SPI_BYTES; i++) soft_spi_transf (i); strob_latch_out (); } break; } } } //======================================================================== //======================================================================== void out_dsp_buf (u08 a) { for (u08 i = 0; i < MAX_LED_IND; i++) dsp_buf [i] = a; } //======================================================================== Logo. Обратите внимание на локальные переменные. Дальше в проекте в модулях уже static и иногда extern. Я провернул трюк с локальными переменными. Видео не буду выкладывать. Это на семисегментном дисплее эффекты при включении прибора показываются. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Starichok Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 ну, хорошо. я извиняюсь за свою категоричность суждений. что-то я не подумал, об интервале в 1 мс. тут даже период обновления всего дисплея в 84 мс глаз не сможет заметить. но по одному символу в 10 мс - это будет уже не допустимо. и опытнее других я не собирался себя выставлять. я знаю, что полно людей гораздо опытнее меня. еще раз извиняюсь... 2 Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 Ну вот и отлично. Если я тоже чем-то Вас огорчил - также извиняюсь... 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Starichok Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 мир, дружба, жвачка... 0 Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду. Ссылка на комментарий Поделиться на другие сайты Поделиться
demiurg1978 Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 1 час назад, Starichok сказал: мир, дружба, жвачка... Ггг, сижу читаю, мысль один в один. "Мир, дружба, жвачка" 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 @demiurg1978 , а в чём фокус, в показанном Вами выше коде ? Что-то я не допонял... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
demiurg1978 Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 Например, то что я подарил идею, принцип, как делать сколько угодно сложные световые эффекты, да еще с выводом на микросхемы расширения ввода-вывода. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 37 минут назад, demiurg1978 сказал: 1 час назад, ARV сказал: Фокус Да хоть магия... фокусничать можно сколько угодно, а факт остается фактом: множество задач могут быть решены гораздо проще, чем "правильно". У вас есть "правильное" решение, а 99,99% всех остальных делают то же самое "неправильно" (ну то есть не по-вашему), и при этом живут гораздо проще и спокойнее... и что? 0 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.