博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.RT-Thread中的跑马灯
阅读量:4100 次
发布时间:2019-05-25

本文共 2765 字,大约阅读时间需要 9 分钟。

/*
 * 程序清单:跑马灯例程
 *
 * 跑马灯大概是最简单的例子,就类似于每种编程语言中程序员接触的第一个程序
 * Hello World一样,所以这个例子就从跑马灯开始。创建一个线程,让它定时地对
 * LED进行更新(关或灭)
 */
/* * 程序清单:跑马灯例程 * * 跑马灯大概是最简单的例子,就类似于每种编程语言中程序员接触的第一个程序 * Hello World一样,所以这个例子就从跑马灯开始。创建一个线程,让它定时地对 * LED进行更新(关或灭) */#include 
#include
ALIGN(RT_ALIGN_SIZE)static rt_uint8_t led_stack[ 512 ];/* 线程的TCB控制块 */static struct rt_thread led_thread;void rt_hw_led_init(void){ rt_pin_mode(LED_0_PIN, PIN_MODE_INPUT); rt_pin_mode(LED_1_PIN, PIN_MODE_INPUT);}void rt_hw_led_on(rt_uint32_t n){ switch (n) { case 0: rt_pin_write(LED_0_PIN, 1); break; case 1: rt_pin_write(LED_0_PIN, 1); break; default: break; }}void rt_hw_led_off(rt_uint32_t n){ switch (n) { case 0: rt_pin_write(LED_0_PIN, 0); break; case 1: rt_pin_write(LED_0_PIN, 0); break; default: break; }}static rt_uint8_t led_inited = 0;void led(rt_uint32_t led, rt_uint32_t value){ /* init led configuration if it's not inited. */ if (!led_inited) { rt_hw_led_init(); led_inited = 1; } if (led == 0) { /* set led status */ switch (value) { case 0: rt_hw_led_off(0); break; case 1: rt_hw_led_on(0); break; default: break; } } if (led == 1) { /* set led status */ switch (value) { case 0: rt_hw_led_off(1); break; case 1: rt_hw_led_on(1); break; default: break; } }}static void led_thread_entry(void *parameter){ unsigned int count = 0; rt_hw_led_init(); while (1) { /* led1 on */ rt_kprintf("led on, count : %d\r\n", count); count++; rt_hw_led_on(0); rt_thread_delay(RT_TICK_PER_SECOND / 2); /* sleep 0.5 second and switch to other thread */ /* led1 off */ rt_kprintf("led off\r\n"); rt_hw_led_off(0); rt_thread_delay(RT_TICK_PER_SECOND / 2); }}int led_sample_init(void){ rt_err_t result; /* init led thread */ result = rt_thread_init(&led_thread, "led", led_thread_entry, RT_NULL, (rt_uint8_t *)&led_stack[0], sizeof(led_stack), 20, 5); if (result == RT_EOK) { rt_thread_startup(&led_thread); } return 0;} /* 如果设置了RT_SAMPLES_AUTORUN,则加入到初始化线程中自动运行 */#if defined (RT_SAMPLES_AUTORUN) && defined(RT_USING_COMPONENTS_INIT) INIT_APP_EXPORT(led_sample_init);#endif/* 导出到 msh 命令列表中 */MSH_CMD_EXPORT(led_sample_init, led sample);

转载地址:http://zswsi.baihongyu.com/

你可能感兴趣的文章
Jenkins 启动命令
查看>>
剑指offer算法题分析与整理(三)
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
fastcgi_param 详解
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
No devices detected. Fatal server error: no screens found
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
谈谈加密和混淆吧[转]
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>