21.07.2015, 07:22 | #11 |
Senior Member
Регистрация: 14.06.2015
Адрес: СССР
Сообщений: 122
Вес репутации: 0 |
Re: Ускоряем и улучшаем скетчи. Ещё одна библиотека.
А вот так будет выглядеть классический блинк в автоматном стиле:
Код:
// ============================== описание КА "blink" =================================== // // Собственно содержимое Arhat.lib::TSC_Blink/TSC_Blink.ino /* * Светодиод - как конечный автомат имеет состояния: * LED_OFF (выключен, ожидание включения) * LED_ON (включен, ожидание выключения) * * Событием, изменяющим состояние является счечик времении. */ #define _ARHAT_ 1 #include "arhat.h" #define pinLed 13 // ножка платы со встроенным светодиодом #define WAIT_ON 1000 // длительность состояния "ожидание выключения" мсек. #define WAIT_OFF 1000 // длительность состояния "ожидание включения" мсек. // Таблица переходов нашего конечного автомата (нумерация с 0!): TSC_Step ledTable[2] = { { 1, to_on, WAIT_ON} // "выключен": включить, перейти к состоянию "включен" с задержкой ,{ 0, to_off, WAIT_OFF} // "включен": всё наоборот, выключаем, переходим к пред. состоянию. }; // Методы, исполняемые при изменении состояния КА: void to_on() { digitalWrite(pinLed, HIGH); } // .. включаем светодиод void to_off(){ digitalWrite(pinLed, LOW); } // .. выключаем светодиод TSC_Control ledControl; // тут будем хранить текущие данные этого КА // используем это для начальной настройки конечного автомата (далее КА) void setup() { pinMode(pinLed, OUTPUT); // ножку светодиода настраиваем как "это выход" tsc_init(&ledControl, ledTable, 0, WAIT_OFF); // добавляем КА и задаем его начальное состояние } // просто вызываем выполнение текущего шага КА, если получится. void loop() { tsc_step( &ledControl ); } |
Метки |
arduino mega 2560, скетч, ардуино |
Здесь присутствуют: 8 (пользователей: 0 , гостей: 8) | |
|
|