Наиболее просматриваемые

Организация задержки в stm32

Согласитесь, очень удобно пользоваться функциями delay_ms() при работе с контроллерами AVR. Жаль, что таких функций нет для stm32.
Задержка в avr организована в виде двух циклов написанных на ассемблере. Расчет величины задержки выполняется при помощи директив учитывающих частоту процессора на этапе компиляции. В stm32 такой подход не является таким действенным из-за больших частот.

Что такое Bit Banding на примере stm32

Прежде чем объяснить, что такое Bit-Banding, позвольте мне написать немного о том, как работает ЦПУ. Обычно ядро процессора не может читать/писать отдельные биты регистров или ячеек памяти. Вместо этого ЦПУ должен записывать/считывать целые байты или даже слова одновременно. Если процессор должен изменить значение всего одного бита, и может только считать/записать байт, он должен сначала прочитать текущее значение во временный регистр, изменять это значение при помощи логической операции, а затем записать конечный результат. Эти три этапа метко названы чтение-модификация-запись.

Работа с энкодером в stm32

Не так давно решил пощупать работу с энкодером.
Для этих целей приобрел себе такой модуль.

В общем это самый обычный инкрементный энкодер KY-040.
Принцип работы сего чуда прост. Имеем два выхода. А и В или же CLK и DT.
При повороте энкодера на них появляются прямоугольные импульсы.
Сдвиг говорит нам о направлении вращения.

Ищем простые числа в python - функции генераторы, yeld

Как вы помните простое число - это такое число которое делится только на себя и на 1.
Никаких супер мега методик тут не будет. Я просто постараюсь на примере объяснить значение команды yield.

С начала напишем функцию, которая будет проверять простое это число или нет:

Простейший сдвиговый регистр на VHDL

Довльно нужная вещь этот ваш сдвиговый регистр...

Напишем простейший вариант реализации на VHDL. Из входов у нас будет: тактирование (С, он же CLK), вход данных (serial input) и выход (serial output).

Принципиальных ограничений на разрядность нет, но мы сегодня будем стереотипными пацанами ;) сделаем 8-ми битный регистр.

Сдвиговый регистр

Будем использовать тип std_logic. Для чего будем использовать библиотеки:

Первый проект на ассемблере AVR ATmega в AVR Studio

Так уж сложилось, что к большинству статей я прикладываю исходники в виде проекта, или схему или ещё чего... Долго думал, что же "приложить" к этой статье.. Ох уж этот асм..

Проект на языке ассемблера для AVR контроллеров создать не особо сложно (утверждение касается только этого - "пилотного" проекта). Буду предполагать, что читатель знаком с основами языка ассемблера, и различает команды от директив.

Программируем первый AVR контроллер [ AtMega8 ]

Для всего нижеизложенного нам понадобится:

  • CodeVisionAvr - для компиляции программы контролера
  • Proteus - для симуляции

Если у вас нет этих программ лучше скачайте именно их. В других всё может кардинально отличатся.
Немного для понимания процесса.
Тут вы не найдёте теоретических сведений о контроллерах и правильном их программировании. Это всего навсего хелловорд в мире контроллеров.
Мы запрограммируем контроллер, который будет мигать диодом по заданной программе.

Схема:

Графики QtCharts в Qt

Возможно Вы слышали о том, что у Qt есть платная коммерческая версия. Одной из плюшек доступной в ней была библиотека для построения графиков.
Не так давно вышла версия Qt 5.7. В ней QChart доступны под лицензией GPLv3. Т.е. теперь мы можем пользоваться ей не занося деньги в офис Qt.

Интересно, что по умолчанию библиотека не устанавливается. Её необходимо вручную выбрать при установке.