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

📄 main.c

📁 arm7 lpc2103 的keil 程序开发包 非常有参考价值
💻 C
字号:
#define IN_MAIN
#include "config.h"
#include "Time.h"
#include "ISR.h"
#include "UART.h"
#include "stdio.h"  
#pragma import(__use_no_semihosting_swi)        //don't delete this line
/* 
	Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
 	Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
*/
#define		Tn_n			0			//定时器0,Tn_n=0
										//定时器1,Tn_n=1
										//定时器2,Tn_n=2
#define		Tn_CAP_MODE		1			//1--上升沿捕获,2-下降沿捕获,3--上升沿+下降沿捕获
#define		Tn_CAPn			0			//捕获通道0
#define		Tn_INT_En		1			//捕获发生时,产生中断
#define		Tn_slot			0			//定时器中断通道0

#define		UART_n			0			//使用UART0
#define		UART_Baud		115200		//通信波特率为115200
#define		UART_datab		8			//8位数据位
#define		UART_stopb		1			//1位停止位
#define		UART_parity		0			//无奇偶校验位
#define		UART_INT_En		0			//无中断

char	str[10];	
/******************************************************************************************
** 函数名称:SendStr()
** 函数功能:将str中的数据发送到PC机上。
** 入口参数:无
** 出口参数:无
******************************************************************************************/
void  SendStr(void)
{
	uint8	i = 0;
	while(str[i] != '\n')	
	{
		UARTn_SendByte(UART_n,str[i++]);
	}	
}
/******************************************************************************************
** 函数名称:Tn_INT()
** 函数功能:定时器捕获中断程序。
******************************************************************************************/
void  Tn_INT(void)
{
#if(Tn_n == 0)		//定时器0
	T0IR = 0x10;
	sprintf(str,"T0CR0 = %ld  \n",T0CR0);	//将捕获到的数据以字符串的形式保存起来
#endif	

#if(Tn_n == 1)		//定时器1
	T1IR = 0x10;
	sprintf(str,"T1CR0 = %ld  \n",T1CR0);	//将捕获到的数据以字符串的形式保存起来
#endif

#if(Tn_n == 2)		//定时器2
	T2IR = 0x10;
	sprintf(str,"T2CR0 = %ld  \n",T2CR0);	//将捕获到的数据以字符串的形式保存起来
#endif
	SendStr();								//将捕获到的数据发送到PC机上
	VICVectAddr = 0x00;						
}
/*********************************************************************************************************
** Function name:	IRQ_Exception
** Descriptions:	interrupt exceptional handler , change it as needed
** 					don't delete this function 
********************************************************************************************************/
void  IRQ_Exception(void)
{
}	
/*******************************************************************************************
** 函数名称:main()
** 函数功能:捕获实验,在PC机上使用串口调试助手观察接收到的捕获数据。
** 说明:	 定时器3没有捕获引脚。捕获引脚需要外加上拉电阻。
*******************************************************************************************/
void Main(void)
{
    TargetInit(VPBDIV_DATA, PLLCFG_DATA, MAMTIM_DATA);      // don't delete
    while((PLLSTAT & (1 << 10)) == 0);                      // can delete
    
	PINSEL0 = 0x00000000;	// 设置所有管脚连接GPIO
	PINSEL1 = 0x00000000;
	//初始化UART0
	UARTn_Init(UART_n,UART_Baud,UART_datab,UART_stopb,UART_parity,UART_INT_En);
   	// 定时器0捕获初始化
#if(Tn_n == 0)
	T0CAP_Init(Tn_CAP_MODE,Tn_CAPn,Tn_INT_En);
	SetISR(TIMER0_INT,Tn_slot,(uint32)Tn_INT);
#endif

#if(Tn_n == 1)	
   	// 定时器1捕获初始化
	T1CAP_Init(Tn_CAP_MODE,Tn_CAPn,Tn_INT_En);
	SetISR(TIMER1_INT,Tn_slot,(uint32)Tn_INT);
#endif

#if(Tn_n == 2)
   	// 定时器2捕获初始化
	T2CAP_Init(Tn_CAP_MODE,Tn_CAPn,Tn_INT_En);
	SetISR(TIMER2_INT,Tn_slot,(uint32)Tn_INT);
#endif	
	IRQEnable();
   	while(1);
}	
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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