onetask.c

来自「一个小型化的嵌入式实时操作系统源代码」· C语言 代码 · 共 69 行

C
69
字号
/*
; ---------------------------------------------------------------------
; File:        timer3.c
;
; uC/OS Real-time multitasking kernel for the SparcLite processor.
;
; Interrupt test using one uCOS task.
;
; Created by Brad Denniston, Viewpoint Engineering  (bradd@vpeng.com).
; ----------------------------------------------------------------------
*/

#include	"ucos.h" 	/* uC/OS interface */
#include	"cpu.h"

/* allocate memory for tasks' stacks */
#define	STACKSIZE	2048
uint	Stack1[STACKSIZE];


/*
; ---------------------------------------------------------------
; Task 1 
; Task running at the lowest priority. 
; ---------------------------------------------------------------
 */
void
Task1(void *Id)
{
	uint	milliseconds;
	uint	seconds;
	uint	minutes;
	uint	hours;

	for( ;; ) {
		milliseconds = OSTimeGet();
		seconds = milliseconds/20;
		minutes = seconds/60;
		hours =  minutes/60;
		milliseconds -= seconds * 20;
		seconds -= minutes * 60;
		minutes -= hours * 60;
		printf( "%d:%d:%d.%d\r", hours, minutes, seconds, milliseconds);
	}
}


/*
; ---------------------------------------------------------------
 * Main function.
; ---------------------------------------------------------------
 */
int
main(int argc, char **argv)
{
	char	Id1 = '1';

	/* needed by uC/OS */
	OSInit();

	OSTaskCreate(Task1, (void *)&Id1, (void *)&Stack1[STACKSIZE], 1);

	CPUInit();
	/* start the os */
	OSStart();

	/* never reached */
} /* main */

⌨️ 快捷键说明

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