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

📄 main.c

📁 周立功公司CANStart—II部分源码
💻 C
字号:
#include "config.h"

#define	TaskStkLengh			128				//定义用户任务的堆栈长度

void TaskUARTtoCANSend (void *pdata);			//CAN发送任务声明
OS_STK	TaskUARTtoCANSendStk [TaskStkLengh];

void TaskCAN1toURATSend (void *pdata);			//UART发送任务声明
OS_STK	TaskCAN1toURATSendStk [TaskStkLengh];	//UART发送任务的堆栈

void TaskCAN2toURATSend (void *pdata);	
OS_STK	TaskCAN2toURATSendStk [TaskStkLengh];

	  
int main()
{
	INT8U	err;
	OSInit ();													
	CAN1Send	= OSSemCreate (0);
	CAN2Send	= OSSemCreate (0);	
	fl_SysStatue	= OSFlagCreate (0x1FF, &err);												
	OSTaskCreate (TaskUARTtoCANSend,(void *)0, &TaskUARTtoCANSendStk[TaskStkLengh - 1], 2);
	OSTaskCreate (TaskCAN1toURATSend,(void *)0, &TaskCAN1toURATSendStk[TaskStkLengh - 1], 3);
	OSTaskCreate (TaskCAN2toURATSend,(void *)0, &TaskCAN2toURATSendStk[TaskStkLengh - 1], 4);	
	OSStart ();																
}

void TaskUARTtoCANSend (void *pdata)
{
	OS_FLAGS	FlagVal;
	INT8U		FlagErr;
	pdata = pdata;
	TargetInit ();
	T0TCR = 0x01;
	while (1)
	{
		FlagVal = OSFlagPend (fl_SysStatue, 
						      CAN_SB_AVAIL[CAN1 ] | CAN_SB_AVAIL[CAN2] | UART_DATA_OK  , 
						      OS_FLAG_WAIT_SET_ALL,
						      0,
						      &FlagErr );
		FlagVal = OSFlagPost (fl_SysStatue, UART_DATA_OK, OS_FLAG_CLR, &FlagErr);
		RS232SendToCAN (SRBuf[1],SRBuf[15] ,&Rs232toCANDataBuf, SRBuf );
		
	}
}

void TaskCAN1toURATSend (void *pdata)
{
	INT8U		err;
	INT8U		FlagErr;
	OS_FLAGS	FlagVal;
	pdata = pdata;
	while (1)
	{
		OSSemPend (CAN1Send,0,&err);
		FlagVal = OSFlagPend (fl_SysStatue, 
						  UART_SEND_OK , 
						  OS_FLAG_WAIT_SET_ALL + OS_FLAG_CONSUME,
						  0,
						  &FlagErr );
		//if (U0LSR&0x20)
		CANSendToRS232 (CAN1, UART0, &CANRcvCyBufApp[CAN1] );
	}
}

void TaskCAN2toURATSend (void *pdata)
{
	INT8U		err;
	INT8U		FlagErr;
	OS_FLAGS	FlagVal;
	pdata = pdata;
	while (1)
	{
		OSSemPend (CAN2Send,0,&err);
		FlagVal = OSFlagPend (fl_SysStatue, 
						  UART_SEND_OK , 
						  OS_FLAG_WAIT_SET_ALL + OS_FLAG_CONSUME,
						  0,
						  &FlagErr );
		CANSendToRS232 (CAN2, UART0, &CANRcvCyBufApp[CAN2] );
	}
}

⌨️ 快捷键说明

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