Программирование микроконтроллеров. Микроконтроллер: Microchip PIC 12x, Microchip PIC 16x, Microchip PIC 18x, AVR ATtiny, AVR ATMega, ST elecrtonics STM8x, ST elecrtonics STM32x, Texas Instruments MSP430x. Функции и задача устройства: #C++, #Arduino, #hardware, #микроконтроллеры ИЗВЛЕЧЬ ФУНКЦИЮ ОТРИСОВКИ ПИКСЕЛЯ ИЗ БИБЛИОТЕКИ Adafruit_SSD1306 Есть библиотека для Ардуино, которая позволяет взаимодействовать с маленькими OLED-дисплеями. Называется Adafruit SSD1306. Вот пример (https://robohobby.by/lessons/oled_tutorial/) туториала по этой библиотеке. Здесь (https://github.com/adafruit/Adafruit_SSD1306/blob/master/examples/ssd1306_128x32_i2c/ssd1306_128x32_i2c.ino) можно посмотреть пример из официального репозитория библиотеки. Сама библиотека написана на C++. Она использует другую библиотеку от тех же авторов, Adafruit GFX. Ответственность между библиотеками делится таким образом: Adafruit GFX реализует различные функции отрисовки линий, букв и прочего, но оставляет функцию отрисовки пикселя нереализованной. В свою очередь, Adafruit SSD1306, реализует, по сути, только функцию отрисовки пикселя для конкретного семейства дисплеев. Вот (https://github.com/adafruit/Adafruit_SSD1306/blob/master/Adafruit_SSD1306.cpp#L640) эта функция. Код Adafruit 1306 выглядит страшно, но это из-за того, что в ней поддержано сразу два варианта подключения к дисплею: SPI (с помощью встроенной в Ардуино библиотеки SPI.h) и i2c (с помощью встроенной в Ардуино библиотеки Wire.h). Меня в этой библиотеке интересует только взаимодействие по i2c и только функция отрисовки одного пикселя. ЗАДАЧА! Пользуясь информацией об устройстве протокола взаимодействия с дисплеем SSD1306, которая содержится в этой библиотеке, написать маленький модуль с функцией drawPixel(x, y, color), которая рисует пиксель, взаимодействуя с дисплеем по i2c. ПОЖЕЛАНИЯ: - Модуль должен зависеть только от Wire.h. - Модуль не должен определять классов, только функции. - Модуль не должен содержать макросов. - Функции должны быть небольшими, не больше экрана. - Кроме отрисовки пикселя, код должен уметь корректно производить инициализацию дисплея. - Библиотека Adafruit SSD1306 содержит логику буферизации дисплея в памяти. Желательно от неё избавиться. РЕЗУЛЬТАТ: В результате должен получиться файл на, условно, 200-300 строк. Можно писать на C++, можно на упрощённом ардуино-варианте. ПРИ ОТКЛИКЕ ПОЖАЛУЙСТА СООБЩИТЕ: - Срок и стоимость выполнения задачи; - Есть ли у вас какие-то вопросы.