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

📄 test3.c

📁 Vxworks的培训教程,大家分享下啊,
💻 C
字号:
#include "pioLib.h"#define MAX_TEST_CHANNELS	3SEM_ID semId[MAX_TEST_CHANNELS];STATUS test3 (testFunc, arg)	FUNCPTR testFunc;	int arg;	{	int tid[MAX_TEST_CHANNELS];	STATUS testTask3();	int i;	int taskTimeout = (testFunc) ? sysClkRateGet() : WAIT_FOREVER;	pioInit (0x3e);	for (i=0; i<MAX_TEST_CHANNELS; i++)		{		if ((semId[i] = semBCreate (SEM_Q_FIFO, SEM_EMPTY)) == NULL)			return (ERROR);		if (pioSetInputMode (PIO_PORT_A, i, PIO_TYPE_POLL, 			PIO_ACTION_RELEASE_SEM, PIO_STATE_ON, semId[i]) == ERROR)			return (ERROR);		if ((tid[i] = taskSpawn ("tTest", 200, 0, 5000, testTask3, i,			 PIO_STATE_ON, taskTimeout)) == ERROR)			return (ERROR);		}	if (testFunc)		{		if (taskSpawn ("tOut", 150, 0, 5000, testFunc, arg) == ERROR)			return (ERROR);		}	return (OK);	}STATUS testTask3 (channel, state, timeout)	int channel, state, timeout;	{	IMPORT int errno;	FOREVER		{		if (semTake (semId[channel], timeout) == ERROR)			{			if (errno == S_objLib_OBJ_TIMEOUT)				return (OK);			else				return (ERROR);			}		pioSet (PIO_PORT_B, channel, state);		state = (state == PIO_STATE_ON) ? PIO_STATE_OFF : PIO_STATE_ON;		if (pioSetInputMode (PIO_PORT_A, channel, PIO_TYPE_POLL, 			PIO_ACTION_RELEASE_SEM, state, semId[channel]) == ERROR)			return (ERROR);		}	}

⌨️ 快捷键说明

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