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

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

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

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

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

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

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

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

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

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

Схема:

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

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

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

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

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

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

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

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

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

Решение задач линейного программирования в Matlab

На просторах интернета полно пример работы с командой linprog, которая позволяет решать задачи линейного программирования в Matlab. Да вот беда. Нигде не показано как ей пользоваться в полном объеме. Куча примеров простейшего уравнения, да и только.

Давайте рассмотрим такой пример:
5x1 - 2x2 + x3 >= 3
-2x1 + 3x2 - 2x3 <= 8
x1 + x2 + x3 = 9
1 <= x1 <= 2
2 <= x2 <= 4
x3 >= 1
f = x1 + x2 - 2x3

Создаём первую анимацию в openGL на С++

Я уже писал об основах создания приложений openGL, давайте немного усложним задачу и попытаемся создать приложение, в окне которого движется с заданной скоростью квадрат.
Создайте новый проект в вашей любимой студии, подключите библиотеки к проекту.
Когда всё готово приступайте к кодингу.

Подключаем заголовочный файл glut:

#include <GL/freeglut.h>

Предопределим глобальными переменными место появления и размер блока: