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

📄 test3b.c

📁 Vxworks的培训教程,大家分享下啊,
💻 C
字号:
#include "pioLib.h"#define MAX_TEST_CHANNELS	3#define PIO_DONE			255MSG_Q_ID msgQId;STATUS test3B (testFunc, arg)	FUNCPTR testFunc;	int arg;	{	int tid;	STATUS testBTask();	int i;	PIO_MSG_Q_DATA msgQData;	pioInit (0x3e);	if ((msgQId = msgQCreate (100, sizeof(PIO_MSG_Q_DATA), MSG_Q_FIFO)) 		== NULL)		return (ERROR);	for (i=0; i<MAX_TEST_CHANNELS; i++)		{		if (pioSetInputMode (PIO_PORT_A, i, PIO_TYPE_POLL, 			PIO_ACTION_MSG_Q_PUT, PIO_STATE_CHANGED, msgQId) == ERROR)			return (ERROR);		}	if ((tid = taskSpawn ("tTestB", 200, 0, 5000, testBTask)) == ERROR)			return (ERROR);	if (testFunc)		{		(*testFunc)(arg);		taskDelay (2);		for (i=0; i<MAX_TEST_CHANNELS; i++)			{			if (pioSetInputMode (PIO_PORT_A, i, PIO_TYPE_IGNORE, 				PIO_ACTION_MSG_Q_PUT, PIO_STATE_CHANGED, msgQId) == ERROR)				return (ERROR);			}		msgQData.port = PIO_DONE;		if (msgQSend (msgQId, &msgQData, sizeof(PIO_MSG_Q_DATA), WAIT_FOREVER,				  MSG_PRI_NORMAL) == ERROR)			return (ERROR);		}	return (OK);	}STATUS testBTask ()	{	PIO_MSG_Q_DATA msgQData;	FOREVER		{		if (msgQReceive (msgQId, &msgQData, sizeof(PIO_MSG_Q_DATA), 			WAIT_FOREVER) == ERROR)				return (ERROR);		if (msgQData.port == PIO_DONE)			{			if (msgQDelete (msgQId) == ERROR)				return (ERROR);			return (OK);			}		pioSet (PIO_PORT_B, msgQData.channel, msgQData.state);		}	}

⌨️ 快捷键说明

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