资源简介
由于项目的需求,不可避免的会在单片机上实现多任务处理,然而多任务之间的交互处理是令大家头疼的意见事情。处理方式有一下几种:1、安装UCOS之类的实时操作系统,但每次更换单片机都需要重新移植比较麻烦;2、用状态机实现,能够快速有效的实现多任务程序,但是状态机的引用导致程序看起来不完正,比较零碎,可读性比较差。3、结合UCOS和状态机思想,对状态机进行改良,得到了Protothreads的微型系统,代码开源,只有几十行代码就可以实现

代码片段和文件信息
// 1.cpp : Defines the entry point for the console application.
//
//#include
//#include
#include
#include “stdafx.h“
#include “pt_type.h“
#include “pt_config.h“
#include “pt.h“
#include “pt_ex.h“
#include “pt_timer.h“
#include “pt-sem.h“
#include “lc.h“
#include
extern void SIGNAL();
PT_TMR_Create(tmr1);
PT_TMR_Create(tmr2);
PT_TMR_Create(tmr3);
PT_TMR_Create(tmr4);
PT_TSK_Create(protothread1);
PT_TSK_Create(protothread2);
PT_TSK_Create(protothread3);
PT_TSK_Create(protothread4);
void MyTicket()
{
int jkab;
//putchar(‘\a‘);
Sleep(1);
SIGNAL();
}
PT_THREAD(protothread1(struct pt *pt))
{
PT_BEGIN(pt);
while(1)
{
PT_TimerSet(&tmr1 3000);
PT_WAIT_UNTIL(pt PT_TimerExpired(&tmr1));
printf(“Hello World 1!\n“);
}
PT_END(pt);
}
PT_THREAD(protothread2(struct pt *pt))
{
PT_BEGIN(pt);
while(1)
{
PT_TimerSet(&tmr2 2000);
PT_WAIT_UNTIL(pt PT_TimerExpired(&tmr2));
printf(“Hello World 2!\n“);
}
PT_END(pt);
}
PT_THREAD(protothread3(struct pt *pt))
{
PT_BEGIN(pt);
while(1)
{
PT_TimerSet(&tmr3 200);
PT_WAIT_UNTIL(pt PT_TimerExpired(&tmr3));
printf(“Hello World 3!\n“);
}
PT_END(pt);
}
PT_THREAD(protothread4(struct pt *pt))
{
PT_BEGIN(pt);
while(1)
{
PT_TimerSet(&tmr4 400);
PT_WAIT_UNTIL(pt PT_TimerExpired(&tmr4));
printf(“Hello World 4!\n“);
}
PT_END(pt);
}
int main(int argc char* argv[])
{
printf(“Hello World!\n“);
int i=0;
PT_INIT(&PT_TCB(protothread1));
PT_INIT(&PT_TCB(protothread2));
PT_INIT(&PT_TCB(protothread3));
PT_INIT(&PT_TCB(protothread4));
while(1) {
if (i<2) MyTicket();
else{
i=0;
protothread1(&PT_TCB(protothread1));
protothread2(&PT_TCB(protothread2));
protothread3(&PT_TCB(protothread3));
protothread4(&PT_TCB(protothread4));
}
i++;
}
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-07-22 11:40 protothreads\
目录 0 2014-07-26 17:02 protothreads\1\
文件 2028 2014-07-26 17:02 protothreads\1\1.cpp
文件 4310 2010-05-19 11:35 protothreads\1\1.dsp
文件 525 2010-05-19 09:55 protothreads\1\1.dsw
文件 8408064 2014-08-18 14:12 protothreads\1\1.ncb
文件 48640 2010-05-19 17:56 protothreads\1\1.opt
文件 238 2010-05-19 13:20 protothreads\1\1.plg
文件 867 2014-08-14 17:15 protothreads\1\1.sln
文件 11264 2014-08-18 14:12 protothreads\1\1.suo
文件 6247 2014-07-26 16:45 protothreads\1\1.vcproj
文件 1427 2014-08-18 14:12 protothreads\1\1.vcproj.DY5A4OBOCPYFOX7.Administrator.user
目录 0 2014-07-26 16:48 protothreads\1\Debug\
文件 432128 2014-07-26 16:48 protothreads\1\Debug\1.exe
文件 406 2014-07-26 16:47 protothreads\1\Debug\1.exe.em
文件 472 2014-07-26 16:47 protothreads\1\Debug\1.exe.em
文件 381 2014-07-26 16:48 protothreads\1\Debug\1.exe.intermediate.manifest
文件 1009340 2014-07-26 16:48 protothreads\1\Debug\1.ilk
文件 11662 2014-07-26 16:48 protothreads\1\Debug\1.obj
文件 2031616 2014-07-26 16:45 protothreads\1\Debug\1.pch
文件 2051072 2014-07-26 16:48 protothreads\1\Debug\1.pdb
文件 6424 2014-07-26 16:48 protothreads\1\Debug\BuildLog.htm
文件 10692 2014-07-26 16:45 protothreads\1\Debug\StdAfx.obj
文件 67 2014-07-26 16:48 protothreads\1\Debug\mt.dep
文件 3952 2014-07-26 16:45 protothreads\1\Debug\pt_ticks.obj
文件 191488 2014-07-26 16:48 protothreads\1\Debug\vc90.idb
文件 126976 2014-07-26 16:48 protothreads\1\Debug\vc90.pdb
文件 1178 2010-05-19 09:55 protothreads\1\ReadMe.txt
目录 0 2014-07-18 13:25 protothreads\1\Release\
文件 32768 2010-05-19 12:13 protothreads\1\Release\1.exe
文件 288 2010-05-19 09:55 protothreads\1\StdAfx.cpp
............此处省略89个文件信息
- 上一篇:CNN学习入门-薛开宇
- 下一篇:JEECG 开发指南v3.7.pdf
相关资源
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 编写简单的RMI程序 多线程web 服务器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论