Подскажите, можно ли в блоках пользователя сделать так что-бы последняя строчка кода и в скетче тоже оказалась последней.
Делаю набор блоков для 5110 на библиотеках Adafruit с кириллицей и графикой. Будут разные блоки для строк по аналогии с 1602 и блоки фигур. Нужно что-то типа:
void loop()
{
display.setContrast(contrast); // Устанавливаем контраст
display.clearDisplay(); // Очищаем дисплей
//тут ещё что-то будет
display.display();//конец скетча
Сейчас приходится разносить display.clearDisplay() и display.display() в первую и последнюю кучу, а хочется служебные функции уместить в один блок инициализации.
По организации блока пользователя
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
По организации блока пользователя
Не до конца понял...
Вот пример кода:
Что и как должно быть?
Вот пример кода:
Код: Выделить всё
void setup()
{ // секция настроек
...............
// код из платы
..............
} // конец секции настроек
void loop()
{ // секция цикла
..............................
// код из платы
..............................
// тут код вашего блока
display.setContrast(contrast); // Устанавливаем контраст
display.clearDisplay(); // Очищаем дисплей
//тут ещё что-то будет
display.display();
//конец вашего кода
..............................
// код из платы
..............................
{ // конец секции цикла
// далее секция подпрограмм и прерываний
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
ISR(TIMER2_OVF_vect)
{ TCNT2=100;
if(_PWDC >= 1000){asm volatile ("jmp 0x0000");}else{_PWDC = _PWDC+1;};
}
Последний раз редактировалось Boroda 04 фев 2017, 16:49, всего редактировалось 1 раз.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
По организации блока пользователя
Функция display.display() должна завершать вывод текста и графики. Так как блоки в проекте могут располагаться произвольным образом, то display.display() проще всего поместить в самый конец. Хотелось так, чтобы если блок пользователя, в котором есть display.display() находясь в начале проекта помещал её в конец.
- Boroda
- Капитан
- Сообщения: 836
- Зарегистрирован: 01 май 2016, 01:04
- Откуда: Коломна
- Имя: Станислав
- Контактная информация:
По организации блока пользователя
Тут надо понимать, что вывод на такой индикатор занимает очень много времени, поэтому обновлять его надо только по необходимости (переход по пунктам меню, изменение значения, которое отображается в данный момент на индикаторе и т.д.). Следовательно блоки подготовки и обработки данных вставляем в любое место программы, а вот блок вывода индикации необходимо поставить на отдельную плату с битом разрешения работы (в версии FLProg 2.3.1 появилась возможность запускать платы по условию).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 05 фев 2017, 11:30, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость