烽火社区

标题: 【飞思卡尔MAPS四色板】06. mbed RTOS双线程工作 [打印本页]

作者: hyw4116    时间: 2016-4-25 10:18 PM
标题: 【飞思卡尔MAPS四色板】06. mbed RTOS双线程工作

目的:利用四色板体验下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)
	{

	}
}


运行效果图:

[attach]29553[/attach]






欢迎光临 烽火社区 (http://bbs.cnecport.com/) Powered by Discuz! X3.2