1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qq1847123212-MOE

Клонировать/Скачать
README.md 7.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.06.2025 04:06 a15004e

MOE

Логотип
Китайская версия

Введение

MOE — это событийно-ориентированная система планировщика для 8/16/32-битных микроконтроллеров. Сокращение MOE означает "Minds Of Embedded system", это также имя моей милой дочери :smile:
Основные характеристики:

| Описание
----------------- | ---------------------------------------------
Событийно-ориентированная система | Гибкая длина очереди событий, поддержка событий с приоритетом.
Таймер | Полезный таймер с обратным вызовом в миллисекундах.
Сообщение | Легкое использование API для сообщений для коммуникации между задачами, поддержка сообщений To-All-Task с низким потреблением RAM.
Отладка | Гибкие опции вывода отладочной информации для каждой задачи или модуля; Полезная функция easy-assert.
Прототред | Поддержка прототреда для модулей приложения.

Для дальнейшего обсуждения присоединяйтесь к нашему QQ-группе: 475258651## Как использовать

  • Шаг 1: Перенесите MOE на вашу аппаратуру, предоставьте "системный часовой сигнал в миллисекундах" и "функцию опроса (если доступна)", инициализируйте и запустите MOE.
/* ПРИМЕР КОДА */
uint16 GetMsClock(void)    /* Функция получения часового сигнала в миллисекундах */
{
    return sg_u16SysClk;  /* Системный часовой сигнал в миллисекундах, увеличивается каждую миллисекунду в прерывании таймера */
}

void Poll(void)    /* Функция опроса */
{
    /* Что-то, что вы хотите сделать опросом */
    return;
}

void main(void)
{
    ....                         /* Инициализация платы */
    MOE_Init(GetMsClock, Poll);  /* Инициализация MOE с функцией получения часового сигнала и функцией опроса (передайте "NULL", если функция опроса недоступна) */
    MOE_Run();                   /* Запуск MOE */
    return;
}
  • Шаг 2: Создайте свои собственные задачи или используйте существующие задачи приложения для построения вашего приложения.
/* ПРИМЕР КОДА */
/* Задача 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)
  • Шаг 4: Запустите и наслаждайтесь. :smile:## Структура дерева исходных файлов
    Папка Описание
    App/ Модули приложения, которые могут быть переиспользованы в разных проектах. Пожалуйста, добавляйте новые модули приложения здесь для новых требований.
    Core/ Основные файлы, включая планировщик, событийно-ориентированный код, таймер и сообщения.
    Cpu/ Код запуска и другие необходимые файлы для запуска микроконтроллеров.
    Driver/ Драйверы периферий микроконтроллеров и другие расширенные модули (датчики или радиочасти).
    Pub/ Общие файлы, включая общие заголовочные файлы, макросы и файлы отладки.
    Utility/ Полезные модули функций, включая очереди, связные списки и printf.
    project/ Файлы для конкретных проектов, включая настройки ПО/железа и основной файл.
    Documents/ Описательные документы, включая запись дизайна, справочник API и изображения.## Полезные документы
  • Описание API (китайский)
  • Запись проектирования (китайский)## Особая благодарность
  • :tada:Рисунок логотипа MOE от Miss Cai Jianan.:tada:

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qq1847123212-MOE.git
git@api.gitlife.ru:oschina-mirror/qq1847123212-MOE.git
oschina-mirror
qq1847123212-MOE
qq1847123212-MOE
master