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

OSCHINA-MIRROR/qq1847123212-MOE

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

MOE

LOGO English

Введение

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

Описание
Событийный драйвер
Программные таймеры
Механизм сообщений
Дебаг-опции
Protothread

Как использовать

  • Шаг 1: Перенесите MOE на вашу аппаратуру и предоставьте "системный миллисекундный часовой сигнал" и "функции, которые нужно постоянно опрашивать (если они есть)", затем инициализируйте и запустите MOE.
/* Пример кода */
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;
}
  • Шаг 2: Создайте ваш TASK или используйте уже протестированный TASK для реализации функциональности вашего приложения.
/* Пример кода */
/* 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)
  • Шаг 4: Запустить, наслаждайтесь. :smile:

Проектная структура

Папка Описание
App/ Модули приложения, не зависящие от конкретного проекта, новые проекты могут использовать модули из этой папки или добавлять новые модули по необходимости
Core/ Ядро проекта, включая планировщик, обработку событий, таймеры и обработку сообщений
Cpu/ Файлы ядра микроконтроллера, часы, запуск
Driver/ Драйверы, включая драйверы периферий микроконтроллера, расширенные устройства (модули RF, датчики и т. д. )
Pub/ Общие файлы проекта, включая общие заголовочные файлы, макросы, файлы отладки
Utility/ Модули часто используемых функций, включая очереди, списки, printf и т. д.
project/ Файлы, связанные с конкретным проектом, включая файлы конфигурации проекта, конфигурации аппаратной части и основной файл main
Documents/ Документация проекта, включая технические записи, руководства по использованию и другие документыcom/ianhom/MOE/tree/master/Documents)

Документация

Особая благодарность

  • :tada:Спасибо за поддержку MOE:tada:
  • :tada:Мисс Цай Цяньнань за тщательное создание логотипа MOE. :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