![]() |
|
|
#1 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Распакуйте библиотеку leOS и скопируйте ее в папку libraries
Краткое описание библиотеки: Что бы добавить задачу, нужно вызвать метод: myOS.addTask (yourFunction, interval); Минимальный интервал вызова задачи 1мс Чтобы приостановить задачу, просто вызовите следующий метод: myOS.pauseTask (yourFunction); Вы можете перезапустить задачу: myOS.restartTask (yourFunction); Чтобы удалить задачу, вызовите следующий метод: myOS.removeTask (yourFunction); Чтобы изменить интервал времени выполняемой задачи, просто вызовите modifyTask метод с новым временным интервалом: myOS.modifyTask(yourFunction, newInterval); Интересной особенностью является возможность запуска одноразовой задачи, которая будет выполнена только один раз: myOS.addTask(yourFunction, interval, ONETIME); Пример кода многозадачности в котором четыре светодиода мигают с разной частотой. PHP код:
Появилась вторая версия LeOS Скачать |
|
|
|
|
|
#2 |
|
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Возник вот такой вопрос, если во время выполнения периодической задачи вызвать её одноразовое исполнение - периодическая задача остановится? Вот как на примере
PHP код:
|
|
|
|
|
|
#3 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Вызывать можно из любого места кода вот так:
current_meter(); Пример PHP код:
|
|
|
|
|
|
#4 |
|
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Продолжаю терзать подпрограммы
PHP код:
|
|
|
|
|
|
#5 |
|
Junior Member
Регистрация: 01.04.2013
Сообщений: 7
Вес репутации: 0 ![]() |
А скажите пожалуйста переменные одного задания доступны в другом?
|
|
|
|
|
|
#6 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Если они объявлены глобально, то конечно же доступны
|
|
|
|
|
|
#7 |
|
Junior Member
Регистрация: 01.04.2013
Сообщений: 7
Вес репутации: 0 ![]() |
В сериал соединении ничего не пишет.
Если в основной цикл данный код вставляешь все работает. А через многозадачность нет ((( Экран сериал соединения пустой. Код:
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "DS1307.h"
#include <EEPROM.h>
#include <leOS.h>
leOS myOS;
DS1307 clock;
#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup()
{
Serial.begin(9600);
myOS.begin();
myOS.addTask(dallas, 5000);
sensors.begin();
clock.begin();
}
void loop()
{
delay (100);
}
void dallas() {
sensors.requestTemperatures();
int T1 = sensors.getTempCByIndex(0);
int T2 = sensors.getTempCByIndex(1);
int T3 = sensors.getTempCByIndex(2);
clock.getTime();
Serial.print(clock.dayOfMonth, DEC);
Serial.print(".");
Serial.print(clock.month, DEC);
Serial.print(".");
Serial.print(clock.year+2000, DEC);
Serial.print(";");
Serial.print(clock.hour, DEC);
Serial.print(":");
Serial.print(clock.minute, DEC);
Serial.print(":");
Serial.print(clock.second, DEC);
Serial.print(";");
Serial.print("T1=");
Serial.print(T1);
Serial.print(";");
Serial.print("T2=");
Serial.print(T2);
Serial.print(";");
Serial.print("T3=");
Serial.print(T3);
Serial.println(";");
}
|
|
|
|
|
|
#8 |
|
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Появился второй вариант библиотеки http://www.leonardomiliani.com/2012/...duino/?lang=en. Основное отличие - теперь библиотека не использует Timer 2 и имеет меньше проблем совместимости. Теперь используется сторожевоц таймер и добавлена функция по перезагрузке микроконтороллера
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|