{"id":24091985,"url":"https://github.com/luhuadong/rtt-littled","last_synced_at":"2026-08-15T00:30:33.818Z","repository":{"id":109656765,"uuid":"242512552","full_name":"luhuadong/rtt-littled","owner":"luhuadong","description":"Little LED Daemon for RT-Thread","archived":false,"fork":false,"pushed_at":"2023-04-13T14:42:10.000Z","size":47,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-10T07:50:44.734Z","etag":null,"topics":["mcu","rt-thread","rt-thread-rtos"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luhuadong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-23T12:26:48.000Z","updated_at":"2024-03-28T08:42:56.000Z","dependencies_parsed_at":"2023-07-29T12:00:10.511Z","dependency_job_id":null,"html_url":"https://github.com/luhuadong/rtt-littled","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2Frtt-littled","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2Frtt-littled/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2Frtt-littled/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2Frtt-littled/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luhuadong","download_url":"https://codeload.github.com/luhuadong/rtt-littled/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240993951,"owners_count":19890419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mcu","rt-thread","rt-thread-rtos"],"created_at":"2025-01-10T07:44:48.300Z","updated_at":"2026-08-15T00:30:28.528Z","avatar_url":"https://github.com/luhuadong.png","language":"C","funding_links":[],"categories":["Packages"],"sub_categories":["Peripherals"],"readme":"# rtt-littled\nLittle LED Daemon for RT-Thread\n\n\n\n## 1、介绍\n\nlittled 是一个基于链表的非常简单易用的 LED 控制软件包。\n\n名字看起来有点奇怪，是 Little LED Daemon 的缩写，意思是小巧的 LED 驱动服务线程。用于帮助处理来自应用线程对 LED 亮、灭、闪烁等控制需求。\n\n\n\n### 1.1 特性\n\n- 采用单例模式实现服务\n- 异步操作\n- 接口简单\n- 控制任务线程化\n- 线程安全\n- 支持中断调用\n\n\n\n### 1.2 软件架构\n\n![](./figures/littled_diagram.png)\n\n更多 \u003e\u003e \u003chttps://blog.csdn.net/lu_embedded/article/details/104565786\u003e\n\n\n\n### 1.3 目录结构\n\n| 名称     | 说明       |\n| -------- | ---------- |\n| examples | 示例目录   |\n| inc      | 头文件目录 |\n| src      | 源代码目录 |\n\n\n\n### 1.4 许可证\n\nlittled 软件包遵循 Apache license v2.0 许可，详见 `LICENSE` 文件。\n\n\n\n### 1.5 依赖\n\n- RT-Thread 3.0+\n- 动态内存管理模块\n\n\n\n## 2、获取 littled 软件包\n\n使用 littled package 需要在 RT-Thread 的包管理器中选择它，具体路径如下：\n\n```\nRT-Thread online packages ---\u003e\n    peripheral libraries and drivers ---\u003e\n        [*] littled: Little LED Daemon for LED driver  ---\u003e\n```\n\n然后让 RT-Thread 的包管理器自动更新，或者使用 `pkgs --update` 命令更新包到 BSP 中。\n\n\n\n## 3、使用 littled 软件包\n\n### 3.1 版本说明\n\n| 版本   | 说明                   |\n| ------ | ---------------------- |\n| v0.2.0 | 初始版本，实现预期功能 |\n| latest | 进一步优化             |\n\n目前处于公测阶段，建议开发者使用 latest 版本。\n\n\n\n### 3.2 配置选项\n\n- 周期时间：`PKG_USING_LITTLED_PERIOD`\n- 脉冲宽度（高电平持续时间）：`PKG_USING_LITTLED_PULSE`\n- 闪烁持续时间：`PKG_USING_LITTLED_BELL_TIME`\n- 闪烁次数：`PKG_USING_LITTLED_BEEP_COUNT`\n\n\u003e 时间的单位为毫秒（ms）\n\n\n\n## 4、API 说明\n\n### 4.1 注册与取消注册\n\n使用 littled 服务线程的唯一要求是注册 LED，注册接口如下：\n\n```c\nint led_register(rt_base_t pin, rt_base_t active_logic);\n```\n\n调用这个函数时，会从动态堆内存中分配一个 gp2y10_device_t 句柄，并按给定参数初始化。\n\n| 参数         | 描述                                       |\n| ------------ | ------------------------------------------ |\n| pin          | LED 引脚                                   |\n| active_logic | 有效电平逻辑值（PIN_HIGH/PIN_LOW）         |\n| **返回**     | ——                                         |\n| LED 描述符   | 注册成功，返回一个大于等于 0 的 LED 描述符 |\n| \u003c 0          | 注册失败，返回错误代码                     |\n\n如果您不再需要控制某个 LED 了，可以调用如下接口取消注册，取消注册后再调用控制接口将无效。\n\n```c\nvoid led_unregister(int ld);\n```\n\n| **参数** | **描述**   |\n| -------- | ---------- |\n| ld       | LED 描述符 |\n| **返回** | ——         |\n| 无       |            |\n\n\n\n### 4.2 模式控制\n\n注册成功后，即可调用 led_mode 函数控制 LED 工作。\n\n```c\nint led_mode(int ld, rt_uint32_t period, rt_uint32_t pulse, rt_uint32_t time, rt_uint32_t count);\n```\n\n| **参数** | **描述**                                                     |\n| -------- | ------------------------------------------------------------ |\n| ld       | LED 描述符                                                   |\n| period   | 周期时间，单位 ms                                            |\n| pulse    | 脉冲宽度（高电平持续时间），单位 ms                          |\n| time     | 闪烁持续时间，单位 ms                                        |\n| count    | 闪烁次数                                                     |\n| **返回** | ——                                                           |\n| RT_EOK   | 由于采用异步操作，返回 RT_EOK 并不代表完成 LED 控制，因此可不关注返回值 |\n\n\n\n### 4.3 宏定义\n\n为方便操作，定义了一些常用控制模式，建议直接使用。\n\n- **LED 亮**\n\n    ```c\n    #define LED_ON(ld)\n    ```\n\n- **LED 灭**\n\n    ```c\n    #define LED_OFF(ld)\n    ```\n\n- **LED 翻转**\n\n    ```c\n    #define LED_TOGGLE(ld)\n    ```\n\n- **LED 提示**\n\n    ```\n    #define LED_BEEP(ld)\n    ```\n\n- **LED 响铃**\n\n    ```c\n    #define LED_BELL(ld)\n    ```\n\n- **LED 持续闪烁**\n\n    ```c\n    #define LED_BLINK(ld)\n    ```\n\n- **LED 持续快闪**\n\n    ```c\n    #define LED_BLINK_FAST(ld)\n    ```\n\n- **LED 持续慢闪**\n\n    ```c\n    #define LED_BLINK_SLOW(ld)\n    ```\n\n默认闪烁周期时间为 1 秒，占空比 50%，您可以通过 `scons --menuconfig` 修改 littled 软件包的相关默认配置。\n\n\n\n## 5、注意事项\n\n1. pulse 不能大于 period。\n2. 新的控制模式会覆盖旧的控制模式，并在下一次修改控制模式前一直保持。\n\n\n\n## 6、相关文档\n\n见 docs 目录。\n\n\n\n## 7、联系方式\n\n- 维护：luhuadong@163.com\n- 主页：\u003chttps://github.com/luhuadong/rtt-littled\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluhuadong%2Frtt-littled","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluhuadong%2Frtt-littled","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluhuadong%2Frtt-littled/lists"}