Добро пожаловать к появлению младшего брата MOE
MOE — это система расписания для многозадачного событийного драйвера для 8/16/32-битных микроконтроллеров (МК). Сокращение MOE означает "Minds Of Embedded system", а также это имя моей любимой дочери
Основные характеристики MOE:
Описание |
---|
Событийный драйвер |
Программные таймеры |
Механизм сообщений |
Дебаг-опции |
Protothread |
/* Пример кода */
uint16 GetMsClock(void) /* Получение системного миллисекундного часового сигнала */
{
return sg_u16SysClk; /* Возврат системного часового сигнала в миллисекундах, sg_u16SysClk каждую миллисекунду увеличивается на 1, например, реализация в прерывании таймера для таймера на 1 миллисекунду */
}
void Poll(void) /* Функция, которую нужно опрашивать */
{
/* Здесь добавьте функции, которые нужно опрашивать */
return;
}
void main(void)
{
.... /* Инициализация уровня платы */
MOE_Init(GetMsClock, Poll); /* Инициализация MOE, предоставляющая функцию получения системного времени в миллисекундах и функцию для опроса (если таковая отсутствует, передать NULL) */
MOE_Run(); /* Запуск MOE */
return;
}
/* Пример кода */
/* Task 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);
``````c
/* Пример кода */
/* Task 2: периодический вывод */
uint8 Task_PT_Demo2_Process(uint8 u8Evt, void *pPara)
{
PT_INIT();
PT_BEGIN();
MOE_MANDATORY_INIT(); /* Обязательная инициализация, следует вызывать только здесь */
while(1)
{
DBG_PRINT("I am another Task!!\n");
PT_DELAY(1000);
}
PT_END();
return SW_OK;
}
```- **Шаг 3**: В файле **Project_Config.h** [**зарегистрировать**](https://github.com/ianhom/MOE/blob/master/Documents/Design_Record.md/#о-регистрации-задач) необходимые для выполнения задачи TASK и выполнить **соответствующие настройки** в этом файле.
```c
#define LIST_OF_REG_TASK \
REG_TASK(Task_PT_Demo_Proces) \
REG_TASK(Task_PT_Demo2_Proces)
Папка | Описание |
---|---|
App/ | Модули приложения, не зависящие от конкретного проекта, новые проекты могут использовать модули из этой папки или добавлять новые модули по необходимости |
Core/ | Ядро проекта, включая планировщик, обработку событий, таймеры и обработку сообщений |
Cpu/ | Файлы ядра микроконтроллера, часы, запуск |
Driver/ | Драйверы, включая драйверы периферий микроконтроллера, расширенные устройства (модули RF, датчики и т. д. ) |
Pub/ | Общие файлы проекта, включая общие заголовочные файлы, макросы, файлы отладки |
Utility/ | Модули часто используемых функций, включая очереди, списки, printf и т. д. |
project/ | Файлы, связанные с конкретным проектом, включая файлы конфигурации проекта, конфигурации аппаратной части и основной файл main |
Documents/ | Документация проекта, включая технические записи, руководства по использованию и другие документыcom/ianhom/MOE/tree/master/Documents) |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )