⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example_c.c

📁 提供了一些ADSP-217x或ADSP-218x DSP芯片的编程事例
💻 C
字号:
/********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*				   ADSP-21xx Specific Code version 1.0	
*
* File: EXAMPLE_C.C
* By  :	Jaap de Jong (jdj@nedap.nl)
*	Nedap Retail Support
*	Parallelweg 2d
*	Postbox 102
*	7140 AC Groenlo
*	Netherlands
* Based on 'ADSP-21065L SHARC Specific Code version 1.0' by Bertrand Hurst, Francois Veuve, Cedric Bornand
********************************************************************************************************/
#include "includes.h"
#include <misc.h>


/********************************************************************************************************
*                                              CONSTANTS
********************************************************************************************************/
#define	TASK_STK_SIZE	256			/* Size of each task's stack */
#define	TASK_START_PRIO	5			/* Priorities of the tasks */
#define	TASK_1_PRIO	13                
#define	TASK_2_PRIO	14 


/********************************************************************************************************
*                                              VARIABLES
********************************************************************************************************/
OS_STK TaskStartStk[TASK_STK_SIZE];		/* Stack for task StatrUp */
OS_STK Task1Stk[TASK_STK_SIZE];			/* Stack for task #1 */
OS_STK Task2Stk[TASK_STK_SIZE];			/* Stack for task #2 */


/********************************************************************************************************
*                                         FUNCTION PROTOTYPES
********************************************************************************************************/
void TaskStart(void *dat);			/* Function prototypes of tasks */
void Task1(void *dat);
void Task2(void *dat);


/********************************************************************************************************
*                                                  MAIN
********************************************************************************************************/
void main (void)
{
	OSInit();				/* Initialises uC/OS-II */
	OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE-1], TASK_START_PRIO);	/* Creates the starting task */
	OSStart();				/* Starts multitasking */               
}


/********************************************************************************************************
*                                               Starting task
********************************************************************************************************/
void  TaskStart (void *dat)
{
	dat = dat;				/* Prevent compiler warning */
	timer_set(16384, 16384, 39);		/* calculate for 50 ticks per second, see os_cfg.h */
	timer_on();
	timer_irqon();
 	OSTaskCreate(Task1, (void *)0, &Task1Stk[TASK_STK_SIZE-1], TASK_1_PRIO);	/* Creates task #1 */
	OSTaskCreate(Task2, (void *)0, &Task2Stk[TASK_STK_SIZE-1], TASK_2_PRIO);	/* Creates task #2 */
	OSTaskDel(TASK_START_PRIO);		/* Self deletion */
}


/********************************************************************************************************
*                                               Task #1
********************************************************************************************************/
void  Task1 (void *dat)
{
	dat = dat;				/* Prevent compiler warning */
	for (;;) {
		OSTimeDly(1);			/* Wait for 1 tick */
		toggle1();
	}
}


/********************************************************************************************************
*                                               Task #2
********************************************************************************************************/
void  Task2 (void *dat)
{
	dat = dat;				/* Prevent compiler warning */
	OSTimeDly(1);				/* Wait for 1 tick */
	for (;;) {
		OSTimeDly(5);			/* Wait for 5 ticks */
		toggle2();
	}
} 


/********************************** End of file *********************************************************/

⌨️ 快捷键说明

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