Articles

AVR Урок 14. ПИД часть 1.

#include <math.h> #include <mega328p.h> #include <delay.h> #include <stdio.h> #define FIRST_ADC_INPUT 0 #define LAST_ADC_INPUT 0 unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1]; #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR)) interrupt [ADC_INT] void adc_isr(void) { static unsigned char input_index=0; adc_data[input_index]=ADCW; if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT)) input_index=0; ADMUX=(FIRST_ADC_INPUT | ADC_VREF_TYPE)+input_index; delay_us(10); ADCSRA|=(1<<ADSC); } void main(void) { float y = 0.00001; float i = 0.00001; int K = 1, T = 100; #pragma ...
Read more

Старт ARM. Цифро-аналоговый преобразователь DAC.

Всем привет! продолжаем говорить про ARM. Сегодня у нам ЦАП (DAC). Цифро-аналоговый преобразователь (ЦАП) — устройство для преобразования цифрового (обычно двоичного) кода в аналоговый сигнал (ток, напряжение или заряд). Цифро-аналоговые преобразователи являются интерфейсом между дискретным цифровым миром и аналоговыми сигналами. Для DAC используется RCC APB1 peripheral clock(RCC_APB1ENR) 42 MHz максимальная частота (stm32f429zi). #include "stm32f4xx_hal.h" #include <math.h> #include <limits.h> DAC_HandleTypeDef hdac; void SystemClock_Config(void); static void ...
Read more

Старт ПЛИС-ы. Самописный UART .

Приветствую тебя, мой уважаемый читатель! Продолжаем пилить ПЛИСины (FPGA). Сегодня у нас UART. Информации много о принципах работы UART и в ARM-ах мы его уже "юзали". Передача данных в UART осуществляется по одному биту в равные промежутки времени. Этот временной промежуток определяется заданной скоростью UART и для конкретного соединения указывается в бодах (что в данном случае соответствует битам в секунду). Существует общепринятый ряд стандартных скоростей: 300; 600; ...
Read more

Старт ПЛИС-ы. Первая ласточка.

Думаю, пришло время начать писать про ПЛИСины (FPGA). "Первая ласточка" – проекты дающие начальные сведения о том, как начать писать на VHDL и "пилить" FPGA, и конечно многое другое. Программируемая логическая интегральная схема (ПЛИС) — электронный компонент, используемый для создания цифровых интегральных схем. В отличие от обычных цифровых микросхем, логика работы ПЛИС не определяется при изготовлении, а задаётся посредством программирования (проектирования, все таки более правильно описания) ...
Read more

Старт ARM. RTOS часть 5-ая. Мьютексы.

Старт ARM. RTOS часть 1-ая. STM32F4 и SAM3N. Старт ARM. RTOS часть 2-ая. Старт ARM. RTOS часть 3-ая. Очереди. Старт ARM. RTOS часть 4-ая. Семафоры. Всем привет, продолжаем дальше на практике изучать FreeRTOS на базе STM32F429i – DISCO. Сегодня на повестки дня мьютексы. Мьютекс (англ. mutex, от mutual exclusion — «взаимное исключение») — одноместный семафор, служащий в программировании для синхронизации одновременно выполняющихся потоков. Мьютексы ...
Read more

AVR. Урок 9 — Comparator

AVR. Урок 8 — Comparator Компаратор (аналоговых сигналов) (comparator — сравнивающее устройство) — электронная схема, принимающая на свои входы два аналоговых сигнала и выдающая логическую «1», если сигнал на прямом входе («+») больше, чем на инверсном входе («−»), и логический «0», если сигнал на прямом входе меньше, чем на инверсном входе. Одно напряжение сравнения двоичного компаратора делит весь диапазон входных напряжений на два поддиапазона ...
Read more

AVR. Урок 8 — PWM

AVR. Урок 8 — PWM Широтно-импульсная модуляция (pulse-width modulation (PWM)) — процесс управления мощностью, подводимой к нагрузке, путём изменения скважности импульсов, при постоянной частоте. Различают аналоговую ШИМ и цифровую ШИМ, двоичную (двухуровневую) ШИМ и троичную (трёхуровневую) ШИМ ...
Read more

AVR. Урок 7 — External Interrupts

AVR. Урок 7 —  External Interrupts. Прерывание (англ. interrupt) — сигнал от программного или аппаратного обеспечения, сообщающий процессору о наступлении какого-либо события, требующего немедленного внимания. Прерывание извещает процессор о наступлении высокоприоритетного события, требующего прерывания текущего кода, выполняемого процессором. Процессор отвечает приостановкой своей текущей активности, сохраняя свое состояние, и выполняя функцию, называемую обработчиком прерывания (или программой обработки прерывания), который реагирует на событие и обслуживает его, ...
Read more