etc.c

来自「此程序为DP256的ETC实验程序,已经通过实验证明」· C语言 代码 · 共 63 行

C
63
字号
#define  ETC_GLOBALS

#include "LIN_Header.h"

void	ETC_Init(void)
{
	//1. Set TSCR1 register
	//	 disable main timer
	//	 timer stop in wait mode
	//	 time flag fast clear
	//TSCR1	= 0x50;
	//2. set TSCR2
	//	 Free running	timer per ticks 16us
	TSCR2	= ETC_TIMER_PRESCAL_128;
	TIOS	=0;
	TIE		=0;
	
}

void	ETC_ICInit(void)
{
	//1. SET ETC Input capture
	TIOS	&= ~ETC_IC_EN;	
	//2. set input capture triger edge
	TCTL4	=	ETC_IC_EDGE;
	//3. Enable input capture interrupts
	TIE	|=	ETC_IC_EN;//ETC_IC_INT_EN;	
	//4. enable pulse  accumulator 
	//ICPAR_PA0EN	= 1;
	//5. ENABLE DELAY COUNTER
	//DLYCT	=	ETC_IC_DLY_MAX;

	ETC_nCapture_mp		= 0;
	ETC_tiCapture_mp	= 0xffff;
	ETC_tiCapture_mp0	= 0xffff;

}

L_U16	ETC_GetICTime(void)
{
	return TC2;//TC0;
}

void	ETC_Timer_Enable(void)
{
	TSCR1	|= 0x80;	
}

void	ETC_Timer_Disable(void)
{
	TSCR1	&= 0x7f;	
}

L_U16	ETC_GetSampleTime(void)
{
	L_U16	wRet;
	wRet	= ETC_GetICTime();
	if(wRet	> ETC_tiCapture_mp0)	wRet	-= ETC_tiCapture_mp0;
	else	wRet	= wRet + 0xffff -ETC_tiCapture_mp0 + 1; 
	return wRet;
}

⌨️ 快捷键说明

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