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

📄 moto_err.c

📁 基于SPMC75的变频电机驱动例子,相当于一个简单的变频器. 望对变频器开发的工程式师有一定的帮助!
💻 C
字号:

//========================================================================
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//             (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
//                    ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//========================================================================

//========================================================================
// Filename: Moto_Err.c
// Author: Lianshu  Mou (email: Lianshu@sunnorth.com.cn)
// Date: 2005/01/26
// Description: 
//
// Reference:
// Revision:
//      2005/01/26      First version
//========================================================================

#include "Spmc75_regs.h"
#include "mcMACRO.h"
#include ".\SPWM_Lib\SPWM_ISR.h"
#include "Option.h"
#include "Display_ISR.h"
#include "Backup_VAR.h"
#include "Data_Backup.h"

int Err_Num = 0;
int Dis_state_Temp = 0;
extern int SAVE_Flag;
void Moto_stop_RUN(void);

GEN_REG_DEF SPWM_flag;
#define UP_Down_Time_NEW	SPWM_flag.B.bit0	//加减速时间更新标志
#define Moto_RUN_EN			SPWM_flag.B.bit5	//电机启动允许
#define Moto_STOP_EN		SPWM_flag.B.bit6	//电机停止允许
#define UP_current			SPWM_flag.B.bit10	//过流
#define Over_Load			SPWM_flag.B.bit11	//过载标志
#define Err_current			SPWM_flag.B.bit12	//过流保护
#define Down_Voltage		SPWM_flag.B.bit13	//欠压
#define UP_Voltage			SPWM_flag.B.bit14	//过压
#define IPM_Err     		SPWM_flag.B.bit15	//IPM出错标志

//=============================================================
// ----Function: void Err_Init(void);
// -Description: 驱动系统出错检测初始化函数
// --Parameters: None
// -----Returns: None
// -------Notes: 
//=============================================================
void Err_Init(void)
{
    P_IOC_Dir->B.bit9 = 0;         //IOB6 FTINP1
	P_IOC_Attrib->B.bit9 = 1;
	P_IOC_Data->B.bit9 = 1;
	P_IOC_SPE->B.FTIN2EN = 1;
//	P_Fault2_Ctrl->B.FTPINE = CB_TMR4_FCR_FTPINE;
//	P_Fault2_Ctrl->B.FTPINIE = CB_TMR4_FCR_FTPINIE;
	P_Fault2_Ctrl->B.FTCNT = 4;
	Err_Num = 0;
	Err_current = 0;
	UP_Voltage = 0;
	Down_Voltage = 0;
	Over_Load = 0;
	IPM_Err = 0;
	UP_current = 0;
}

//=============================================================
// ----Function: void Err_RESET(void);
// -Description: 清除错误状态
// --Parameters: None
// -----Returns: None
// -------Notes: 
//=============================================================
void Err_RESET(void)
{
	Err_Num = 0;
	Err_current = 0;
	UP_Voltage = 0;
	Down_Voltage = 0;
	Over_Load = 0;
	IPM_Err = 0;
	UP_current = 0;
	Dis_set.Display_state = Dis_state_Temp;
}

//=============================================================
// ----Function: void Err_ISR(void);
// -Description: 根据当前状态设置相应的的错误代码
// --Parameters: None
// -----Returns: None
// -------Notes: 
//=============================================================
void Err_ISR(void)
{	//根据当前状态设置相应的的错误代码!
	if((SPWM_flag.W&0xff00) > 0)
	{	//有报警事件
		//根据报警事件设置相应的错误事件号
		if(Err_current > 0)			//过流保护
			Err_Num = 1;
		else if(UP_Voltage > 0)		//过压
			Err_Num = 2;
		else if(Down_Voltage > 0)	//欠压
			Err_Num = 3;
		else if(IPM_Err > 0)		//IPM出错标志
			Err_Num = 4;
		else if(UP_current > 0)		//过流
			Err_Num = 5;
	}
	if(Rating_Current == 0)
		Err_Num = 6;				//额定电流没设定
	else Err_Num = 0;				//没有异常事件
	if(Err_Num > 0)
	{
		Dis_state_Temp = Dis_set.Display_state;
		Dis_set.Display_state = 1;
	}
}

//=================================================================================================
// Description: IRQ0 interrupt source is XXX,used to XXX
// Notes:
//=================================================================================================
void IRQ0(void) __attribute__ ((ISR));
void IRQ0(void)
{
	if(P_Fault2_Ctrl->B.FTPINIF)
	{
		P_Fault2_Ctrl->B.FTPINIF = 1;
		SPMC75_Stop_Moto(1);			//立即断电
		P_IOC_SPE->W |= CW_IOC_FTIN2_SFR_EN;
    	P_Fault2_Release->W = 0x55aa;
    	P_Fault2_Release->W = 0xaa55;
		P_Fault2_Ctrl->B.FTPINE = 1;
		IPM_Err = 1;                   //IPM Err flag
	}
}

⌨️ 快捷键说明

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