Страница 1 из 1

По организации блока пользователя

Добавлено: 04 фев 2017, 15:50
RedSky
Подскажите, можно ли в блоках пользователя сделать так что-бы последняя строчка кода и в скетче тоже оказалась последней.
Делаю набор блоков для 5110 на библиотеках Adafruit с кириллицей и графикой. Будут разные блоки для строк по аналогии с 1602 и блоки фигур. Нужно что-то типа:

void loop()
{
display.setContrast(contrast);      // Устанавливаем контраст
display.clearDisplay();       // Очищаем дисплей
//тут ещё что-то будет
display.display();//конец скетча

Сейчас приходится разносить display.clearDisplay() и display.display() в первую и последнюю кучу, а хочется служебные функции уместить в один блок инициализации.

По организации блока пользователя

Добавлено: 04 фев 2017, 16:46
Boroda
Не до конца понял...

Вот пример кода:



Код: Выделить всё

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;};
}
Что и как должно быть?

По организации блока пользователя

Добавлено: 05 фев 2017, 10:43
RedSky
Функция display.display() должна завершать вывод текста и графики. Так как блоки в проекте могут располагаться произвольным образом, то display.display() проще всего поместить в самый конец. Хотелось так, чтобы если блок пользователя, в котором есть display.display() находясь в начале проекта помещал её в конец.

По организации блока пользователя

Добавлено: 05 фев 2017, 11:24
Boroda
Тут надо понимать, что вывод на такой индикатор занимает очень много времени, поэтому обновлять его надо только по необходимости (переход по пунктам меню, изменение значения, которое отображается в данный момент на индикаторе и т.д.). Следовательно блоки подготовки и обработки данных вставляем в любое место программы, а вот блок вывода индикации необходимо поставить на отдельную плату с битом разрешения работы (в версии FLProg 2.3.1 появилась возможность запускать платы по условию).