Как говорил Резун-Суворов,…

…беру свои слова обратно.

Сегодня ко дню программиста на EasyElectronics был выложен замечательный пример использования возможностей C++ применительно к микроконтролерам. В общем, must read.

Сомневаюсь, что на «чистом» Си можно написать такой же эффективный код — точнее, «написать» можно, но используя какой-нибудь транслятор из C++ в C (и в итоге получив мешанину из хитрых макросов, недоступную для понимания человеком :) ).

Кто способен понять написанное там — с профессиональным праздником!

Как говорил Резун-Суворов,…: 6 комментариев

  1. Опасный в своей тупости код! Изменение битов портов не защищено критическими секциями. Получилось как всегда программирование ради примера. Никакой пракьтческой пользы.

      1. Примеры чисто учебные и совершенно неприспособленные к работе. Несложно исправить? Попробуйте (на основе приведенной методы) и, если не трудно, покажите насколько оптимально получилось в Асме. Скажем, на простом примере набора бит на портах AVR:
        0-D.0,
        1-D.1,
        2-D.2,
        3-G.0,
        4-G.1,
        5-E.2
        А потом посмотрим как это сделать вручную или с помощью «мешанины хитроумных макросов».

        1. Конечно, с позициями бит наврал, да и не договорились что куда писать, простите, предновогоднее утро :) Вот посмотрел реальный пример реального проекта.
          0-D.0, <— давайте запишем сюда "0"
          1-D.1, <— давайте запишем сюда "1"
          2-E.0, <— давайте запишем сюда "0"
          3-G.0, <— давайте запишем сюда "1"
          4-G.1, <— давайте запишем сюда "0"
          5-E.2 <— давайте запишем сюда "1"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *