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

📄 intdocument.c

📁 到車控制系統 C語言(單晶片控制) 可搭配語音檔
💻 C
字号:


#define P_INT_Ctrl				(volatile unsigned int *)0x7010   
#define P_INT_Clear				(volatile unsigned int *)0x7011 
#define P_INT_Ctrl_New			(volatile unsigned int *)0x702d
#define P_Watchdog_Clear		(volatile unsigned int *)0x7012  
#define P_SystemClock			(volatile unsigned int *)0x7013  
#define P_TimerB_Data			(volatile unsigned int *)0x700C   
#define P_TimerB_Ctrl			(volatile unsigned int *)0x700D  

#define M_TIMERA_EN       0x0001	
#define M_TIMERA_STOP	  0x0006	

extern unsigned int uiIOB_20Hz_flag;	
extern unsigned int uiEXT_EN_flag;		

extern unsigned int uiMeasure_Index;	
extern unsigned int uiResult[4];		
extern void US_Send200us(void);			

void IRQ6(void)__attribute__((ISR));
void IRQ6(void)
{
	int iTemp;				
	iTemp = *P_INT_Ctrl;
	if(iTemp&0x0002)
	{
		*P_INT_Clear=0x0002;
		if(uiEXT_EN_flag)
		{
			*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);	
			uiEXT_EN_flag = 0;							
			*P_TimerB_Ctrl = M_TIMERA_STOP;				
		}
		uiMeasure_Index++;								
		if(uiMeasure_Index>4)
		{
			*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);	
			*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0002);	
			uiEXT_EN_flag = 0;							
			uiIOB_20Hz_flag = 0;
			*P_TimerB_Ctrl = M_TIMERA_STOP;				
		}
		else
		{
			US_Send200us();								
		}	
	}
}

void IRQ3(void)__attribute__((ISR));
void IRQ3(void)
{
	unsigned int uiTemp;
	unsigned int uiResult1;								
	unsigned int i;
	
	uiTemp=*P_INT_Ctrl;
	if(uiTemp&0x0100)
	{
		if(uiEXT_EN_flag)
		{
			*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);	
			uiEXT_EN_flag = 0;
			uiResult1 = *P_TimerB_Data;					
			*P_TimerB_Ctrl = M_TIMERA_STOP;				
		
			if(uiMeasure_Index == 1)
			{
				uiResult[0] = uiResult1;	
			}
			else
			{
				i = uiMeasure_Index-1;
				while(i)
				{
					if(uiResult1>uiResult[i-1])
					{
						uiResult[i] = uiResult[i-1];
						uiResult[i-1] = uiResult1;	
					}
					else
					{
						uiResult[i] = uiResult1;
					}
					i--;
				}
			}
		}
		*P_INT_Clear = 0x0100;
	}
}


extern void Show_Flag(void);
extern unsigned int Counter_1KHz;
void IRQ4(void)__attribute__((ISR));
void IRQ4(void)
{
	Counter_1KHz++;
	Show_Flag();										
	*P_INT_Clear=0x0020;
}

extern unsigned int Counter_2Hz;					
void IRQ5(void)__attribute__((ISR));
void IRQ5(void)
{
	Counter_2Hz++;
	if(Counter_2Hz>6)
		*P_INT_Ctrl = *P_INT_Ctrl_New&0xfff7;			
	*P_INT_Clear=0x0008;								
}

⌨️ 快捷键说明

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