📄 main.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 + -