Автоматизация инкремента версий в keil

Опишу небольшой заголовочный файлик, который помогает мне не заботиться о том, что бы у каждой вновь скомпилированный прошивки была новая версия.

Люблю Visual Studio за механизм, позволяющий инкрементировать версию собранного проекта, и также сильно ненавижу Keil за отсутствие таковой возможности .

Для чего это нужно? Представим ситуацию, когда очень много устройств, а ПО всё время дорабатывается, или же прошивкой новой версии занимается другой человек, ... много может быть причин, но не всегда можно отследить в каком устройстве какая версия зашита. Да и не всегда при сборки проекта вспоминаешь что нужно увеличить номер версии.

Стало интересно?

Немного о форматировании кода и другие советы

Некий свод советов по оформлению кода, которые помогут легче читать и поддерживать код, а также спасут от некоторых ошибок.

Данная заметка это некий свод советов по оформлению кода, которые помогут легче читать и поддерживать код, а также спасут от некоторых ошибок, своего рода компиляция многих источников которые были прочитаны за время профессиональной деятельности и некоторых своих домысливаний.

Библиотека для работы с дисплеем 1602

Библиотека для работы с двухстрочным 16 символьным дисплеем.

Моя реализация библиотеки для дисплея 16х2 под управлением HD44780.

Описывать протокол и особенности управления, пайки и настройки не буду.

Краткие возможности:

  • управление отображением курсора;
  • вкл/выкл дисплея;
  • вывод текста в любое место;
  • поддержка специальных символов \n и \t;
  • вывод числа с преобразованием его в строку;
  • и др.

Указатели на функции в Си.

Описание и пояснения по указателям на функции и переменные;

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

Что такое указатели и как их готовить вы наверное уже в курсе, если нет, то быстренько объясню.

Указатель - это переменная, которая содержит в себе адрес другой переменной, на которую указывает. Если проводить грубую аналогию с файловой системой в Windows, то указатель - это ярлык, а файл на который он указывает - переменная, размышляя дальше можно сказать что функция - это программа на компьютере, а ярлык для запуска программы - указатель на функцию.

Объявляются указатели следующим образом:

uint16_t *pointer_ui16 = &variable;
void *pointer_Void
char *str = "Строка";

Управление выводами порта совмещенного с JTAGом.

Управление выводами портов MDR_PORTB и MDR_PORTD, при использовании отладочного интерфейса JTAGA и/или JTAGB. Глюки JTAG. Что делать если отваливается JTAG.

Cover Image

Данная статья носит характер небольшой заметки, а не учебного пособия.

Одной из особенностей микроконтроллеров Миландр серии 9х (точно знаю о 92, 93 с которыми работаю), на мой взгляд, это не совсем продуманная организации управления портами ввода вывода, а именно отсутствие привычных для пользователей stm32 регистров BRR и BSRR, которые позволяют атомарно устанавливать и сбрасывать их состояние. Соответственно необходимо выполнять команды чтение-модификация-запись, что в принципе приемлемо, но...

Подключаем энкодер с помощью таймера

Описание процесса работы с энкодером с помощью таймера в режиме захвата для микроконтроллеров STM32

Cover Image

На этот раз рассмотрим подключение к микроконтроллеру STM32F205 (на остальных аналогично) энкодер.

Есть несколько вариантов считывания информации с энкодера. Но так как микроконтроллер у нас имеет таймеры работающие в режиме захвата и способные обрабатывать сигналы с энкодера, будем пользоваться именно ими.

Подключение выполним к выводам 6 и 7 порта A (это входы/выходы таймера TIM3) вот по схеме на рисунке выше.