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

📄 main.c

📁 Keil平台
💻 C
字号:

/****************************************Copyright (c)**************************************************
**                                  哈 尔 滨 光 宇 国 际 集 团
**                                     电力电子研究所
**                                        研发部
**
**                                 http://www.coslight.com.cn
**                                 联系电话:0451-86677970-6738
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: Main.C
**创   建   人: 刘宝贵
**最后修改日期: 2007年8月6日
**描        述: 主程序,变量初始化,任务建立,电压采集。
**              
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 刘宝贵
** 版  本: v1.0
** 日 期: 2007年8月6日
** 描 述: 原始版本
**
***--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
** 描 述: 
** 说  明: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define DATA

#include "config.h"
#include "stdlib.h"
#define	TaskStkLengh	64			//Define the Task0 stack length 定义用户任务0的堆栈长度

OS_STK	TaskStk0 [TaskStkLengh];	//Define the Task0 stack 定义用户任务0的堆栈
OS_STK	TaskStk1 [TaskStkLengh];	//Define the Task1 stack 定义用户任务1的堆栈
OS_STK	TaskStk2 [TaskStkLengh];	//Define the Task2 stack 定义用户任务2的堆栈
OS_STK	TaskStk3 [TaskStkLengh];	//Define the Task2 stack 定义用户任务2的堆栈
OS_STK	TaskStk4 [TaskStkLengh];	//Define the Task2 stack 定义用户任务2的堆栈

void 	Task0(void *pdata);			//Task0 任务0
void 	TaskScanKey(void *pdata);			//Task0 任务0
/*********************************************************************************************************
** 函数名称: 主程序
** 功能描述: OS初始化,建立任务,开始多执行多任务
** 输   入: 无
** 输   出: 无
** 作   者: 刘宝贵
** 日   期: 2007年8月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main (void)
{
    PINSEL10 =0;
	OSInit ();
	OSTaskCreate (Task0,      (void *)0, &TaskStk0[TaskStkLengh - 1], 2);
	OSTaskCreate (TaskCan,    (void *)0, &TaskStk1[TaskStkLengh - 1], 3);
	OSTaskCreate (TaskScanKey,(void *)0, &TaskStk2[TaskStkLengh - 1], 4);
//	OSTaskCreate (TaskUart2,  (void *)0, &TaskStk3[TaskStkLengh - 1], 5);
	OSTaskCreate (MainGUIProc,(void *)0, &TaskStk4[TaskStkLengh - 1], 6);
	OSStart ();
	return 0;															
}
/*********************************************************************************************************
** 函数名称: void Task0	(void *pdata)
** 功能描述: 系统初始化;周期性检测地址变化,如果地址变化则初始化CAN总线接收滤波器,检测CAN_bus将挂起的CAN激活
** 输   入: 无
** 输   出: 无
** 作   者: 刘宝贵
** 日   期: 2007年8月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Task0	(void *pdata)
{
	uint32	i;
	uint8   BoardAddressTemp;
	pdata = pdata;
	TargetInit ();
    SCS |= 1;              //Datasheet Page 28,使能高速IO模式
	Temperature = 2300;
	for(i=0;i<108;i++)
	{
	    CellU[i] = 0;
	}
	BoardAddress = ((uint8)(FIO1PIN>>18) & 0x7F); //拨码的低七位有效
	//BoardAddressTemp = 	BoardAddress;
    //InitCANAccFilter();
    //循环处理事件
	while(1)
	{
	    OSTimeDlyHMSM(0,0,2,0);
		//如果设备在运行过程中改变了地址要及时更数CAN通信滤波器,否则通信会中断
		BoardAddress = (uint8)(FIO1PIN>>18);//每两秒读一次地址
		//if(BoardAddressTemp != BoardAddress)
		//{
			//BoardAddressTemp = 	BoardAddress;
		    //InitCANAccFilter();
		//}
		//系统检测CAN_bus将挂起的CAN激活
		for(i=0;i<REALCAN;i++)
		{
			if(regCANMOD(i).Bits.RM_BIT != 0)
			{
				regCANGSR(i).Word=0;
				regCANMOD(i).Bits.RM_BIT=0x00;
				regCANCMR(i).Word=0x02;
			}
		}
	}
}
/*********************************************************************************************************
** 函数名称: 
** 功能描述: 
** 输   入: 无
** 输   出: 无
** 作   者: 刘宝贵
** 日   期: 2007年8月20日
**-------------------------------------------------------------------------------------------------------
** 修 改 人:
** 日   期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void TaskScanKey (void *pdata)
{
	pdata = pdata;
    while(1)
    {
		ScanKey();
	}
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/



⌨️ 快捷键说明

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