Рейтинг
12.57
голосов: 10

О блоге

Алгоритмические хитрости, типовые решения и заумные трюки. Все то, что можно воплотить программно на любом микроконтроллере или на компе (но применимо к электронике)

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (152)

dcoder Krieger Tabke XANDER marvin_yorke kest Vga Alatar mzw kalvenolt Reverb mist grand1987 Gornist Rom kvm labor neiver Leopoldius rumkin

Все читатели блога

Проект rusEfi и мысли о программировании МК вообще.

Я бы хотел рассказать о проекте автомобильного ЭБУ rusEfi и заодно озвучить некоторые мысли о программировании МК вообще.

Итак, по профессии я программист, по работе я делаю аналитику для биржевого терминала на java — там ничего гипер сложного, просто много данных которые нужно относительно быстро обработать. Значит нужно постоянно не забывать о производительности — при этом логики много, значит код должен должен читаться. Исходникам в этом году исполнится 10 лет — это даёт возможность окунуться в реалии работы со старым кодом, который уже никто не помнит, как почему и зачем вообще существует. Я рассказываю об этом, потому что именно этот мой опыт влияет на подход к программированию в rusEfi.




Читать дальше

8 канальный ШИМ на attiny13

AVR attiny13 довольно популярный микроконтроллер (далее МК) и довольно дешевый (20 рублей на ebay). Но есть у него небольшой недостаток: 6 пинов I/O. А на деле вообще 5 (если не шаманить с reset). Если надо большое кол-во пинов на вывод чем может позволить микроконтроллер, то с легкостью используется микросхема регистра сдвига 74HC595, которая потребует 3-х пинов. Потратив 3 пина, можно получить 8*N пинов для вывода(где N — кол-во микросхем 74HC595).

Если со статическим выводом всё ясно, то что делать с ШИМ (PWM)?


Читать дальше

Поменьше математики процессору, или оптимизация расчётов.

Досталась горстка дохлых ноутбучных батарей, тех самых, что на литиевых габарита 18650 собраны. По этому случаю делаю тут измеритель фактической ёмкости акумуляторов, чтобы хоть как то отбраковать их. Хочется видеть цифры по итогу в удобоваримом формате. А поскольку делаю на ATTiny26 (Не пинать! Ну, завалялся у меня.), то тащить вычисления с точкой накладно. Сел, помозговал — решаемо. Материал под катом может кому-то показаться очевидной истиной, может оказаться кому-то не востребованным, но надеюсь — большинство хоть что-нибудь подчерпнут для себя. Для нетерпеливых итог:
(1)(1)
Для тех, кто не боится формул — ниже.

Читать дальше

Быстро делим на 3

Здравствуйте.

Часто читаю WE, так как интересуюсь программированием микроконтроллеров, и решил наконец-то зарегистрироваться, а заодно и запостить статеечку в личный блог.
Статья будет мало кому интересная по причине вопроса не шибко востребованного — а именно быстрого деления числа любой разрядности на 3.


Читать дальше

2D Reed-Solomon Block Turbo Codes (RS BTC)

Речь идет о реализации а не описание алгоритмов. За описаниями алгоритмов в гугл. Они все открыты и очень хорошо расписаны.

Под реализацией понимается — реализация для микроконтроллеров. А не для DSP, PC, FPGA и прочих кодировщиков.



Читать дальше

Каскадное кодирование Рида — Соломона\Витерби.

Речь идет о реализации а не описание алгоритмов. За описаниями алгоритмов в гугл. Они все открыты и очень хорошо расписаны.

Под реализацией понимается — реализация для микроконтроллеров. А не для DSP, PC, FPGA и прочих кодировщиков.


Читать дальше

Криптография для эмбеддера. Введение в ассиметричные алгоритмы.



У меня в черновиках «завалялась» небольшая статья по ассиметричной криптографии. Статья коллеги a9d приводит пример использования «модульной арифметики», (правда в другом ключе) но не объясняет «как это работает». Т. к. коллега запретил комментарии к своей статье (ИМХО, зря, в комментариях самое вкусное), я позволю себе опубликовать данную недоработанную статью.


В последнее время в сообществе возрос интерес к вопросам криптографической защиты информации и я решил написать небольшую статью (вернее продолжить предыдущую).



Читать дальше

Асимметричное шифрование. RSA это очень просто.

Раньше я уже искал либы для микроконтроллера с реализацией Асимметричное шифрования, но ничего путевого не нашел. Я делал главную ошибку. Я искал в рунете! Я постоянно натыкался на посты где трындели, что это очень сложно и микроконтроллер не потянет. Так вот, это П***шь и его потянет даже avr.

И бла бла бла. В общем первые же поиски на англоязычных сайтах увенчались успехом.


Читать дальше

Преобразуем в строку. Часть 2. Числа с фиксированной и плавающей точкой.

Продолжаем преобразовывать всё, что можно в строки.
В предыдущей статье были целые числа, теперь очередь чисел с фиксированной и плавающей точкой.
Все рассмотренные примеры с фиксированной точкой используют формат с 16-ю битами для дробной части и 16-ю битами для целой части, так называемый формат Q16, однако легко могут быть адаптированы для других форматов.

В качестве чисел с плавающей точкой использован 32-х разрядный float.



Читать дальше
  • +14
  • 07 января 2013, 13:08
  • neiver
  • 1

Спасаем стек

Продолжим тему о микроконтроллерах с малым объёмом памяти. Я обычно подразумеваю под таковыми те, у которых ОЗУ 512-1К. Есть, конечно и со 128, и 256 байтами, но там уже не до СИ. При использовании ОС, которая умеет в переключение нитей, возникает проблема памяти для стека, тем более, что у каждой нити он свой. Стек расходуется в основном на две вещи (помимо контекста при переключении нитей): сохранение регистров и выделение фрейма при вызове функций. Соответственно, чем глубже вложенность вызовов, тем больше расходуется стек. Неприятные сюрпризы могут вылезти при использовании библиотечных функций, таких как printf (лол, никогда не знаешь, что там внутри, хотя, можно и посмотреть для интереса).


Читать дальше