За_тех_кто_в_коде();
15
подписчиков
О программировании микроконтроллеров... В основном, но не только ;)
Статьи
0.9.4
Давно что-то не было обновления… Просто местами призадумался, местами был занят другими файлами… Сперва наверное нужно об ошибках. Первая в прошлой версии, но далеко не первая за период моего общения с Arduino IDE. Вносишь изменения, компилируешь, все отлично. Пытаешься всё то же самое завести на другом компе, начинают сыпаться предупреждения. Не фатально, но неприятно. Другая ошибка, довольно простая, и в то же время весьма досадная. Выбирая размер переменной, в условиях ограниченного количества ОЗУ, всегда стараешься не переборщить...
Затираем....
Нет, я конечно слышал, что шильдики на корпусах перебивают... Но чтобы вот так, бесцеремонно затереть черным маркером творчество Бэларусских братьев-кодеров??? :) Раньше пираты текстуры в играх меняли, не говоря уже о переводе текста...
Из Arduino в Atmel Studio и другие IDE
При попытке компиляции проекта написанного в Arduino IDE, можно не мало удивиться количеству ошибок и предупреждений которые выдаст компилятор при попытки сборки проекта. Хотя в Ардуино все компилировалось и работало без проблем. Ошибки не слишком серьезные, и я бы не стал их считать минусом Arduino IDE. Список будет пополнятся по мере их обнаружения. сomparison between signed and unsigned integer Сравнение знаковой и без знаковой переменной. Например будут равны при сравнении int -1 и unsigned int 65535, -2 и 65534, и так далее...
Корпус устройства. Первая примерка.
Изначально, библиотека писалась для простого управления через подобного рода устройства. У меня пару-тройку лет назад был изготовлен пробный прототип, 6 кнопок из них 4 стрелки и А и B, как на джойстике Денди, где-то я это выкладывал... Шести кнопок хватает для управления даже в самом замороченном игровом интерфейсе, поэтому даже на Денди есть и RPG и Квесты и управление там остается интуитивно понятным. Ведь весь интерфейс находится на экране. Тачпад я категорически не рассматриваю, так как...
Эллипс, вариант первый.
Конечно, для меня это далеко не первый вариант и даже не второй. Задачка конечно, с тремя звездочками. Причем, реального кода, если убрать элементы типа объявления переменных, там строчек 20 наверное. Функция работает по тому же принципу что и окружность, которую я писал многим ранее, и которая на удивление ну очень легко зашла. Сперва черновик в виде массива, а потом вторая функция отрисовки, которая тупо двигается по массиву, в ней ничего особенного. Казалось бы есть черновик для четверти окружности...
Библиотека переходит в оконный режим.
Девятая версия дома!
В 8.5 были допущена крайне досадная ошибка, вызванная работой над ошибками и исправлением ошибок. Это тот случай, когда запилил обновление, толком не протестив, даже в уже специально подготовленных для этих целей примерах. Но ошибка как минимум интересная, разберу её чуть позже.
В девятой версии мне удалось реализовать отрисовку графических элементов через условно "экранную память". Все логически к этому шло, так как это во всех смыслах корректный режим и для динамического изображения и самое главное написания кода для анимации...
Версия 0.7.0. Едем дальше, добавлена дуга. Остальное не без косяков конечно... Многое исправлено. Лучший бета тест функции или метода, это создание сложной конструкции на базе этой функции. Для функции произвольной прямой, это треугольник. Для треугольника (полигона), это 3D модель. Как-то так... ссылки: disk.yandex.ru/...yja disk.yandex.ru/...9eq disk.yandex.ru/...fug Статья описание : ямал-спец-альтернатива.рф/...tml
Окружность в библиотеке
Библиотека бета версии 0.4.0 пополнилась функцией отрисовки окружности. Без числа пи, переменных типа float, без косинусов и извлечения корней. Практически методами арифметики начальной школы :) Лишь на основании геометрического определения окружности. Оставаясь в нежных объятьях исключительно целочисленной и максимально рациональной математики;) http://ямал-спец-альтернатива...
Счетчики для LCD библиотеки
Продолжаем движение. Следующим на очереди у нас идут счетчики. Так как я раньше уже писал счетчики, у меня уже сформировались определенные требования. То есть у меня были определенные хотелки и я придерживался их реализации. К тому же это моя первая реализация в плюсах. Хотелось полностью автоматизированную систему. Удаляем лишние нули, левее старших разрядов. Ни к чему левая информация на экране. На ходу меняем цвет шрифта. Для случаев, когда например пересекли красную зону. Ну и самое главное...
Библиотека для подключения LCD экранов к микроконтроллерам. Функция написания текста переработана. Данные о сдвиге интервале между символами удалось впихнуть в старшую триаду бит регистрового байта. Места как раз оставалось. Удалось воспользоваться особенностью кодировки КОИ-8Р, которая сдвигает символы на 160 и 96. Функция теперь принимает все значения. Вместо того что нет рисует пробел. Положение всех символов было поправлено, но их положение и вид всё равно не вызывают полного удовлетворения. Функция получилась достаточно тяжеловесной для МК и вызов занимает ~15.5Кб При том что код едва затянет на 1.5Кб. Остальное это данные распиханные по массивам. Общий объем которых составляет всего 1700 байт. Скорость отображения получилась достаточно вменяемая и в варианте SPI и тем более 8 бит. Базовые функции в си, остальное уже наверное стоит пилить в плюсах. С такими скоростями уже можно ехать. И у меня уже появились соображения для ускорения 8 и 16 битной шины :) Я когда начинал писать, не знал что получится быстрее... Потому что я был в этом абсолютно уверен! :) disk.yandex.ru/...pma disk.yandex.ru/...rwq Описание в статье : hямал-спец-альтернатива.рф/...tml
Первый выезд. Аппаратный SPI ATMega уходит в точку.
Библиотека для LCD дисплеев Arduino Первый выезд. Это первая моя публикация. Завел её на дзене, на случай если у кого-то вдруг появятся вопросы. И посмотреть что тут да как. Тестовая статья. Самостоятельно запустить экранчик, для меня это была задача со звездочкой... Текущий вид библиотеки, по некоторым блокам еще так себе... Но она завелась и поехала! :) А при подключении через SPI, я бы даже сказал полетела! В аппаратом SPI Меги байт уходит за 4 такта. Это удвоенный режим. Точных замеров я пока не производил, но визуально это в 1...
Ролики