MOE — это событийно-ориентированная система планировщика для 8/16/32-битных микроконтроллеров. Сокращение MOE означает "Minds Of Embedded system", это также имя моей милой дочери
Основные характеристики:
| Описание
----------------- | ---------------------------------------------
Событийно-ориентированная система | Гибкая длина очереди событий, поддержка событий с приоритетом.
Таймер | Полезный таймер с обратным вызовом в миллисекундах.
Сообщение | Легкое использование API для сообщений для коммуникации между задачами, поддержка сообщений To-All-Task с низким потреблением RAM.
Отладка | Гибкие опции вывода отладочной информации для каждой задачи или модуля; Полезная функция easy-assert.
Прототред | Поддержка прототреда для модулей приложения.
Для дальнейшего обсуждения присоединяйтесь к нашему QQ-группе: 475258651## Как использовать
/* ПРИМЕР КОДА */
uint16 GetMsClock(void) /* Функция получения часового сигнала в миллисекундах */
{
return sg_u16SysClk; /* Системный часовой сигнал в миллисекундах, увеличивается каждую миллисекунду в прерывании таймера */
}
void Poll(void) /* Функция опроса */
{
/* Что-то, что вы хотите сделать опросом */
return;
}
void main(void)
{
.... /* Инициализация платы */
MOE_Init(GetMsClock, Poll); /* Инициализация MOE с функцией получения часового сигнала и функцией опроса (передайте "NULL", если функция опроса недоступна) */
MOE_Run(); /* Запуск MOE */
return;
}
/* ПРИМЕР КОДА */
/* Задача 1: Мигание LED */
uint8 Task_PT_Demo_Process(uint8 u8Evt, void *pPara)
{
PT_INIT();
PT_BEGIN();
MOE_MANDATORY_INIT(); /* Обязательная инициализация, следует вызывать только здесь */
while(1)
{
TASK_PT_DEMO_LED_Toggle(LED_RED);
PT_DELAY(1000);
TASK_PT_DEMO_LED_Toggle(LED_GREEN);
PT_DELAY(1000);
TASK_PT_DEMO_LED_Toggle(LED_BLUE);
PT_DELAY(1000);
}
PT_END();
return SW_OK;
}
/* ПРИМЕР КОДА */
/* Задача 2: Периодическое печатание */
uint8 Task_PT_Demo2_Process(uint8 u8Evt, void *pPara)
{
PT_INIT();
PT_BEGIN();
MOE_MANDATORY_INIT(); /* Обязательная инициализация, следует вызывать только здесь */
``` while (1)
{
DBG_PRINT("Я - другая задача!!\n");
PT_DELAY(1000);
}
PT_END();
return SW_OK;
}
#define LIST_OF_REG_TASK \
REG_TASK(Task_PT_Demo_Proces) \
REG_TASK(Task_PT_Demo2_Proces)
Папка | Описание |
---|---|
App/ | Модули приложения, которые могут быть переиспользованы в разных проектах. Пожалуйста, добавляйте новые модули приложения здесь для новых требований. |
Core/ | Основные файлы, включая планировщик, событийно-ориентированный код, таймер и сообщения. |
Cpu/ | Код запуска и другие необходимые файлы для запуска микроконтроллеров. |
Driver/ | Драйверы периферий микроконтроллеров и другие расширенные модули (датчики или радиочасти). |
Pub/ | Общие файлы, включая общие заголовочные файлы, макросы и файлы отладки. |
Utility/ | Полезные модули функций, включая очереди, связные списки и printf. |
project/ | Файлы для конкретных проектов, включая настройки ПО/железа и основной файл. |
Documents/ | Описательные документы, включая запись дизайна, справочник API и изображения.## Полезные документы |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )