查看: 526|回复: 0
打印 上一主题 下一主题

【飞思卡尔MAPS四色板】06. mbed RTOS双线程工作

[复制链接] qrcode

24

主题

30

帖子

87

积分

注册会员

Rank: 2

积分
87
楼主
跳转到指定楼层
发表于 2016-4-25 10:18 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

目的:利用四色板体验下mbed rtos

思路:创建两个线程,线程1每秒钟对LED1进行翻转,线程2通过按键模拟软开关控制LED4的亮和灭。

源码:

#include "mbed.h"
#include "rtos.h"

DigitalOut led1(PTB7);
DigitalOut led4(PTB4);
InterruptIn sw2(PTB21);
Thread *thread2;

void sw2_press(void)
{
	thread2->signal_set(0x1);
}

void led_thread(void const *argument)
{
	while (true)
	{
		led1 = !led1;
		Thread::wait(1000);
	}
}

void button_thread(void const *argument)
{
	while (true)
	{
		Thread::signal_wait(0x1);
		led4 = !led4;
	}
}

int main()
{
	Thread thread(led_thread);
	thread2 = new Thread(button_thread);

	sw2.fall(&sw2_press);
	while (true)
	{

	}
}


运行效果图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表