www.pudn.com > MiniOS.rar > ex1.c


// 
// 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 
	} 
}