#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop() {
redToGreen();
greenToBlue();
blueToRed();
}
void redToGreen() {
for (int i = 0; i <= 255; i++) {
pixels.setPixelColor(0, pixels.Color(255 - i, i, 0));
pixels.show();
delay(20);
}
}
void greenToBlue() {
for (int i = 0; i <= 255; i++) {
pixels.setPixelColor(0, pixels.Color(0, 255 - i, i));
pixels.show();
delay(20);
}
}
void blueToRed() {
for (int i = 0; i <= 255; i++) {
pixels.setPixelColor(0, pixels.Color(i, 0, 255 - i));
pixels.show();
delay(20);
}
}
//1 вопрос
// Микроконтроллеры это вычислительные устройства сочетающие в себе процессор, память и переферийные устройства
//Хар-ки: Тактовая частота, Разрядность(8, 16 битные(количество чисел для обработки)), Обьем память (ОЗУ(оперативка), ПЗУ(постоянная)), переферия(АЦП, I2C), Энергопотребление
//Арх. ос: объединение памяти и процессора, программное управление, наличие flash памяти(соханяет данные при отключении), обычно используется гарвардская архитектура
//Существует 2 типа архитектур: Гравардская и Пристонская(Фон Неймана)
//Гарвардская: отдельные адресные пространства для хранения данных и инструкций, одновременное получение данных и инструкций но по разным шинам
//увеличивает скорость обработки но усложняет программирование
//Принстонская архитектура: общее пространство данных и инструкций, последовательное получение данных - снижает скорость обработки, проще программировать
//Почему гарвардская используется: более высокая скорость выполнения процессов за счет параллельных операций, сокращение длины команд и ускорение поиска информации в памяти
//2 вопрос
//Режим счётчика, когда таймер увеличивает своё значение при поступлении внешнего импульса
//или на подсчёт с помощью тактов процессора(точный отсчёт в мемени в милисикундах или микросекундах)
//Настройка осуществляется напрмер так: определяется источник сигнала, напрмер пин, определяется предделитель(влияние на скорость увеличения значения)
//далее можно настоить чтение значения счетчика и сброс при определенном значении или вручную. Также можно настроить прерывание при достижении определенного значения
//Таймеры используются для измерения времени и остлеживания внешних событий(счетчики), это позволяет генерировать события в соответствии с условием или заданной периодичностью