Наоптимизировал немножко :-)))
Apr. 7th, 2016 11:39 pmЭто так возбуждающе :-))) сделать код побыстрее и поменьше размером :-)))
Было время выполнения 231.88 микросекунд на операцию разложения числа в набор сегментов для индикатора, стало 196.0 микросекунд.
Отказался от операторов if... else в пользу switch... case. Но.... это не помогло избавиться от мерцания индикатора, причём никак не могу определить, в какой момент происходит "затык". Поступил "по военному" - запретил прерывания глобально, на время преобразования - всё стало отлично - на индикации (по осциллографу) это никак не сказалось. Теоретически, счётчик тиков должен теперь отставать на 200 микросекунд при каждом преобразовании, но это не так критично, да и исправимо программно (буду просто каждый раз прибавлять это время к переменной)
Стало: http://pastebin.com/Yyqc8fTY
В ассемблере ничего не понимаю, но уже вижу, что стало быстрее. Вот попробую ещё избавиться от "остаток от деления" % - достаточно "дорогая" операция получается :-(
Было время выполнения 231.88 микросекунд на операцию разложения числа в набор сегментов для индикатора, стало 196.0 микросекунд.
Отказался от операторов if... else в пользу switch... case. Но.... это не помогло избавиться от мерцания индикатора, причём никак не могу определить, в какой момент происходит "затык". Поступил "по военному" - запретил прерывания глобально, на время преобразования - всё стало отлично - на индикации (по осциллографу) это никак не сказалось. Теоретически, счётчик тиков должен теперь отставать на 200 микросекунд при каждом преобразовании, но это не так критично, да и исправимо программно (буду просто каждый раз прибавлять это время к переменной)
Стало: http://pastebin.com/Yyqc8fTY
В ассемблере ничего не понимаю, но уже вижу, что стало быстрее. Вот попробую ещё избавиться от "остаток от деления" % - достаточно "дорогая" операция получается :-(
no subject
Date: 2016-04-07 10:23 pm (UTC)no subject
Date: 2016-04-07 10:49 pm (UTC)БСДМBCD - нет, пока я не готов это изучать :-)))"Но если больше нечем заняться, тогда конечно, двоичнодесятичная арифметика, будет прекрасной заменой анонизму с гемороем.
no subject
Date: 2016-04-08 07:55 am (UTC)no subject
Date: 2016-04-08 08:04 am (UTC)https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%BE-%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4