#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#define TFT_CLK 13
#define TFT_MOSI 11
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(ILI9341_BLACK);
tft.fillRect(10, 10, 100, 50, ILI9341_RED);
tft.fillRect(10, 70, 100, 50, ILI9341_GREEN);
tft.fillRect(10, 130, 100, 50, ILI9341_BLUE);
}
void loop() {
}
//Вопрос 1
//Прошивка мк процесс: Подготовка исходных кодов, библиотек, пишутся на различных языках программирования соответствующих типу мк, устанавливаются драйверы
//далее происходит формирование файла пригодного для исполнения, это проиходит в компиляторе в автоматическом режиме(перевод программы в машинный код "010010")
//загрузка программы в мк с помощью программатора. Для прошивки обычно используется сам микроконтроллер, программа компилятор, программатор.
//К разным мк нужны разные методы прошивки. Используются разные программы-компиляторы, программные коды могут быть написаны на разных языках, используются разные интерфейсы, разные программаторы
//AVR(atmel: это ардуино например) использует интерфейс ISP(In System Programming) позволяет программировать мк в цепи или сестеме и ещё
//используется интерфейс ISCP(In Circuit Serial Programming) записывает код напрямую в память через последовательный интерфейс
//PIC (microchip) используют например интерфейс ISCP и др.
//ARM используют например ISP и др. (Многие процессоры в современных смартфонах на архитектуре ARM и многая потребительская электроника)
//Некоторые мк имеют встроенный загрузчик который позволяет записывать программу по USB без использования спец программатора
//Вопрос 2
//Основные отличия между языками С и С++ это пприменение объектно ориентированного программирования(создания классов в языке С++)
//В С код более глобальный(глобальные переменные, функции) и там нельзя создать класс. В языке С++ можно использовать ООП и сделать код более читаемым и логичным
//Принципы ООП - Инкапсуляция(скрытие функций в одном классе), наследование(можно создавать новые классы на основе существующих), полиморфизм(способность
//обьекта использовать разные методы для реализации методов исходя из контекста. Конвертировать из С в С++ структурировав код и разбив на классы,
//использовать методы(функции записанные в класс), использовать объекты классов вместо глобальных перременных.
//Конвертация проекта с языка C в C++ для микроконтроллеров дает возможность использовать объектно-ориентированные принципы программирования для улучшения структуры и
//читаемости кода. Применение классов и методов позволяет организовать проект, повысить его гибкость и упростить его дальнейшее расширение.