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

📄 init.h

📁 LF2407的各个模块的测试程序,包含2407里面的所有模块,均已经调试通过,心血所致,希望对大家有所帮助.
💻 H
字号:
void System_Init()
{ 
	asm(" setc INTM");//禁止所有中断
	asm(" setc SXM");//抑制符号位扩展
	asm(" clrc OVM");//累加器中结果正常溢出
	asm(" clrc CNF");//B0被配置为数据存储空间	
	
	*SCSR1 = 0x00FE; //Page 28
	*WDCR  = 0x0E8;//禁止看门狗
	
	*IFR   = 0xFFFF;//清楚全部中断标志,写1清0。
	
	//端口初始化
	*MCRA = 0x0FDF;
	*MCRB = 0xFFFC;
	*MCRC = 0x0000;		
	
	*PADATDIR = 0xFFFF;
	*PCDATDIR = 0x0200;
	*PFDATDIR = 0xF300;
	
	*IMR = 0x3F;//使能全部6组中断
}

void XINT_Init()
{
	//XINT初始化
	*XINT1CR = 0x8003;//低优先级,下降沿中断
	*XINT2CR = 0x8003;//低优先级,下降沿中断
}
void Timer_Init()
{	
	//Timer1-->PWM
	*EVAIMRA |= 0x0200;//Page 135,使能下溢中断
	
	//Timer2-->QEP
	*EVAIMRB = *EVAIMRB | 0x000C;//使能上溢中断和下溢中断
	*T2PER  =0XFFFF;      //T2周期寄存器           
	*T2CON  =0X1830;      //设置T2计数模式为定向增减计数模式 时钟源选择正交编码脉冲电路                
	*T2CNT  =0X0000;      //T2计数器
	
	//Timer3-->自定义定时器
	*EVBIMRA = *EVBIMRA | 0x0080;//周期中断使能
	*EVBIFRA = *EVBIMRA & 0x0080;//清周期中断标志
	
	*T3CON = 0x1300;//设置T3计数模式为连续增计数模式 预标定系数X/8     
	*T3PER = 0x3A98;//这里设置为5ms。计算方法: T3PER = 24*1000*(n毫秒)/(预标定系数8)
	*T3CNT = 0x0000;
	
	//Timer4用作AD采集的触发输入
	*T4CON = 0x170C;
	*T4PER = 0x75;
	*T4CNT = 0x00;  
	*GPTCONB = 0x400;
	*EVBIFRB = 0x0FFFF;	 
}
void Start_Timer(unsigned char which)
{
	switch(which)
	{
		case 1:
			*T1CON = *T1CON | 0x0040;//启动定时器1
			break;
		case 2:
			*T2CON = *T2CON | 0x0040;//启动定时器2
			break;
		case 3:
			*T3CON = *T3CON | 0x0040;//启动定时器3
			break;
		case 4:
			*T4CON = *T4CON | 0x0040;//启动定时器4
			break;
		default:
			;
	}
}

void Set_LED(unsigned int led_data)
{
	*PEDATDIR = 0xFF00 + (0x00FF & (~led_data));
}

UINT Get_Group_Key()
{
	return (0x000F & ((*PBDATDIR & 0x00F0)>>4));
}

void SPDU_Define()
{
	UINT i,j = 0;
	for(i=0;i<SPDU_Amount;i++)
	{
		for(j=0;j<8;j++)
		{
			SPDU[i].Data[j] = 0;
			SPDU[i].Ver_Data[j] = 0;
		}		
	}
//------------------------------------------	
	SPDU[0].ID = 0xAA00;
	
	//加速踏板
	SPDU[0].Data_Def[0].Offset = 0;
	SPDU[0].Data_Def[0].Precis = 0.0001;
	
	//制动踏板
	SPDU[0].Data_Def[1].Offset = 0;
	SPDU[0].Data_Def[1].Precis = 0.0001;
	
	//磁粉制动器制动强度
	SPDU[0].Data_Def[2].Offset = 0;
	SPDU[0].Data_Def[2].Precis = 0.0001;	
	
	SPDU[0].Data_Def[3].Offset = 0;
	SPDU[0].Data_Def[3].Precis = 1;
	
	SPDU[0].Data_Def[4].Offset = 0;
	SPDU[0].Data_Def[4].Precis = 1;
	
	SPDU[0].Data_Def[5].Offset = 0;
	SPDU[0].Data_Def[5].Precis = 1;
	
	SPDU[0].Data_Def[6].Offset = 0;
	SPDU[0].Data_Def[6].Precis = 1;
	
	SPDU[0].Data_Def[7].Offset = 0;
	SPDU[0].Data_Def[7].Precis = 1;
	
//------------------------------------------	
	SPDU[1].ID = 0xAA01;
	SPDU[1].Data_Def[0].Offset = 0;
	SPDU[1].Data_Def[0].Precis = 1;
	
	SPDU[1].Data_Def[1].Offset = 0;
	SPDU[1].Data_Def[1].Precis = 1;
	
	SPDU[1].Data_Def[2].Offset = 0;
	SPDU[1].Data_Def[2].Precis = 1;
	
	SPDU[1].Data_Def[3].Offset = 0;
	SPDU[1].Data_Def[3].Precis = 1;
	
	SPDU[1].Data_Def[4].Offset = 0;
	SPDU[1].Data_Def[4].Precis = 1;
	
	SPDU[1].Data_Def[5].Offset = 0;
	SPDU[1].Data_Def[5].Precis = 1;
	
	SPDU[1].Data_Def[6].Offset = 0;
	SPDU[1].Data_Def[6].Precis = 1;
	
	SPDU[1].Data_Def[7].Offset = 0;
	SPDU[1].Data_Def[7].Precis = 1;

//------------------------------------------	
	SPDU[2].ID = 0x0002;
//------------------------------------------	
	SPDU[3].ID = 0x0003;
//------------------------------------------	
	SPDU[4].ID = 0x0004;	
}

⌨️ 快捷键说明

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