ex1.c

来自「51单片机上可以使用的操作系统」· C语言 代码 · 共 43 行

C
43
字号
//
// example 1: single task
// descriptions: port B low byte: connect to 8 LEDs
//				 Program run to turn on LEDs one by one,control signal output from port B.
// author: Taiyun Wang 
// date: 2003/2/22
///////////////////////////////////////////////////////////////////////////


#include "sposvar.h"
#include "spos.h"

int err;						//err No
int t1stack[25];				//Task stack

volatile unsigned int *P_IOB_BUFFER =(unsigned int*)(0x7006);	//Port B data register
volatile unsigned int *P_IOB_DIR =(unsigned int*)(0x7007);		//Port B direction register
volatile unsigned int *P_IOB_ATTRIB = (unsigned int*)(0x7008);	//Port B attribute register

main()
 {
	void Task1();								
	SpSInit();									//initialize OS kernel
	*P_IOB_DIR = 0XFFFF;						//Set Prot B is output
	*P_IOB_ATTRIB = 0XFFFF;						//Set prot B attribute
	err = SpSTaskCreate(Task1,0,t1stack+24,1);	//Create a task
	SpSStart();									//Start kernel
}

void Task1()					//task one
{
	unsigned int i = 1;
	unsigned int k = 5;
    while(1) {
		*P_IOB_BUFFER = i;
		i<<=1;
		k = k % 3;
		if(i == 0x0100)	
			i = 1;
		SpSTimeDly(20);							//Delay 20 tick
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?