Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
fib(&pt1, 1000, &value) < PT_EXITED
Примеры, приведенные в статье, писались под Windows, работают в MinGW и Visual Studio, но внимание! В Visual Studio, в конфигурации DEBUG, библиотека protothreads, в том виде как она есть, не компилируется!
Причина в том, что макрос __LINE__ в конфигурации DEBUG в VS почему-то из константы превращается в вызов функции, это легко лечится, если в файле lc-switch.h заменить
#define LC_SET(s) s = __LINE__; case __LINE__:
на
#define LC_SET(s) s = __COUNTER__+1; case (__COUNTER__):
#if defined(_MSC_VER) && defined(_DEBUG)
#define LC_SET(s) s = __COUNTER__+1; case (__COUNTER__):
#else
#define LC_SET(s) s = __LINE__; case __LINE__:
#endif
Многозадачность в микроконтроллерах на основе продолжений