Как стать автором
Обновить

Комментарии 13

Было бы здорово, если бы кто-то примером показал, как к ардуино из коробки прикрутить эту штуку.
В архиве есть вполне нормальное Readme, и примеры в папке examples. Скачали, разархивировали в библиотеки, и можно работать. Пример скетча с двумя светодиодами:

//include the OS
#include "leOS.h"
leOS myOS; //create a new istance of the class leOS

//variabiles to control the LEDs
byte led1Status = 0;
byte led2Status = 0;
const byte LED1 = 7;
const byte LED2 = 8;

//program setup
void setup() {
    myOS.begin(); //initialize the scheduler
    pinMode(LED1, OUTPUT);
    pinMode(LED2, OUTPUT);
    
    //add the tasks at the scheduler
    myOS.addTask(flashLed1, 600);
}

//main loop
void loop() {
    digitalWrite(LED2, led2Status);
    led2Status ^= 1;    
    delay(1000);
}
//first task
void flashLed1() {
    led1Status^=1;
    digitalWrite(LED1, led1Status);
}
Игрушка в игрушке. Зачем? Чтобы поиграться и забросить? Не могу себе представить никакого способа применения этого «многозадачного ядра». Очень хочется заминусовать разработчика этой бесполезной вещи для еще более бесполезной вещи.
Вы совершенно правы. Ядро планирую использовать в такой игрушке:
Робот с контроллером

Крупнее

Плата управления на базе MEGA32U4 самодельная, изготовленная по технологии ЛУТ. Прошивка от Arduino Leonardo.
Память микроконтроллера ATmega не резиновая, и её всегда не хватает. Когда Вы попытаетесь применить в своем проекте «многозадачное ядро для Arduino», то очень быстро поймете, что ресурсам процессора можно было бы найти гораздо более полезное применение.
Хорошее начинание, но пока игрушка — кроме шедуллера ничего нет?

Про память тоже непонятно, с теми крохотными размерами ОЗУ и из ОС иногда упираешься.
* и без ОС иногда память заканчивается
Вроде DiHalt тоже разрабатывал многозадачную «ОС» для AVR-овских микропроцессоров.

Там была не только диспетчеризация, но и куча других плюшек.
Разрабатывал и активно сейчас юзаю наработки. Вот только на определенном этапе понял, что мне от ос кроме диспетчера, службы таймеров и (в некоторых случаях) подобия виртуальной машины больше ничего и не нужно. Потому дальше фичи наворачивать не стал.
FreeRTOS же есть для нескольких десятков платформ, а тут какая-то AVR-only поделка.
А как с FreeRTOS использовать скетчи и библиотеки Arduino?
Переписать на си.
Тут, наверное, спорить нет смысла. Критерии по которым выбирают тот или иной инструмент могут быть разными. Мне, например, этот диспетчер нравится тем, что он встраивается в существующее окружение Arduino без дополнительных запилов на C.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации