54 lines
2.5 KiB
C
54 lines
2.5 KiB
C
#include <avr/io.h>
|
||
#include <util/delay.h>
|
||
#include "display_functions.h"
|
||
|
||
// Основной код вашего проекта
|
||
|
||
int main() {
|
||
// Настройка портов и другие инициализации
|
||
|
||
lcd_init(); // Инициализация дисплея
|
||
|
||
// Ваш код в функции setup()
|
||
|
||
while (1) {
|
||
unsigned long currentTime = millis(); // Текущее время
|
||
// Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue
|
||
if (currentTime - textCounter.startTime >= 500) {
|
||
textCounter.incrementValue++; // Увеличиваем incrementValue на 1
|
||
textCounter.startTime = currentTime; // Обновляем время
|
||
}
|
||
|
||
DisplayData displayData;
|
||
strncpy(displayData.topLine, "we are responsible for those who have been tame ", sizeof(displayData.topLine) - 1);
|
||
displayData.topLine[sizeof(displayData.topLine) - 1] = '\0';
|
||
displayData.value1 = 500;
|
||
displayData.value2 = 800;
|
||
displayData.value3 = 855;
|
||
// Буферы для заполнения данных
|
||
char buffer1[17];
|
||
char buffer2[17];
|
||
// Заполнение буфера 1
|
||
fillBuffer1(displayData.topLine, buffer1, sizeof(buffer1), textCounter.incrementValue);
|
||
// Заполнение буфера 2
|
||
fillBuffer2(displayData.value1, displayData.value2, displayData.value3, buffer2, sizeof(buffer2));
|
||
// Создание массива для вывода на дисплей
|
||
char displayArray[32];
|
||
strncpy(displayArray, buffer1, 16); // Копирование первых 16 символов из buffer1 в displayArray
|
||
strncpy(displayArray + 16, buffer2, 16); // Копирование первых 16 символов из buffer2 в displayArray, начиная с позиции 16
|
||
|
||
// Вывод данных на экран
|
||
lcd.setCursor(0, 0);
|
||
lcd.print(displayArray);
|
||
lcd.setCursor(0, 1);
|
||
lcd.print(displayArray + 16); // Вывод второй половины displayArray
|
||
|
||
// Ваш код в функции loop() может быть здесь или в другом месте
|
||
|
||
// Обновление данных на дисплее
|
||
lcd_update(&displayData, &textCounter);
|
||
}
|
||
|
||
return 0;
|
||
}
|