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

📄 main.c

📁 arm7 lpc2103 的keil 程序开发包 非常有参考价值
💻 C
字号:
#define IN_MAIN
#include "config.h"
#include "Time.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_MODE		1			//0--上升沿计数,1--下降沿计数,2--上升沿+下降沿
#define		Tn_CAPn		0			//捕获通道0,Tn_CAPn=0
									//捕获通道1,Tn_CAPn=1
									//捕获通道2,Tn_CAPn=2
									//捕获通道3,Tn_CAPn=3
									
#define		MAT_data	5			//匹配值为5
#define		Tn_PR_data	1			//进行2分频
#define		Tn_T_MODE	0			//匹配时定时器复位
#define		Tn_EXT_MODE	3			//匹配时,输出翻转
#define		Tn_MATn		0			//匹配通道0
#define		Tn_INT_En	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[20];
/******************************************************************************************
** 函数名称:SendStr()
** 函数功能:将str中的数据发送到PC机上。
** 入口参数:无
** 出口参数:无
******************************************************************************************/
void  SendStr(void)
{
	uint8	i = 0;
	while(str[i] != '\n')	
	{
		UARTn_SendByte(UART_n,str[i++]);
	}	
}
/*********************************************************************************************************
** Function name:			IRQ_Exception
**
** Descriptions:			interrupt exceptional handler , change it as needed
**                          don't delete this function 
********************************************************************************************************/
void  IRQ_Exception(void)
{
}
/*********************************************************************************************************
** 函数名称:Main()
** 函数功能:计数器实验,在PC机上使用串口调试助手观察计数器的值。
** 说明:	 在测试定时器2的计数器功能时,不能在调试状态下进行。
**			 定时器3没有计数引脚。
********************************************************************************************************/
void Main(void)
{
	uint32	tmp;
    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);

#if(Tn_n == 0)
   	// 计数器0初始化
	T0MAT_Init(MAT_data,Tn_PR_data,Tn_T_MODE,Tn_EXT_MODE,Tn_MATn,Tn_INT_En);
	T0COUNT_Init(Tn_MODE,Tn_CAPn);
   	while(1)
   	{
   		tmp = T0TC;
   		while(tmp == T0TC);
   		sprintf(str,"T0TC = %ld; \n",T0TC);	//将计数值打印成字符串的形式
		SendStr();
   	}
#endif

#if(Tn_n == 1)	
   	// 计数器1初始化
	T1MAT_Init(MAT_data,Tn_PR_data,Tn_T_MODE,Tn_EXT_MODE,Tn_MATn,Tn_INT_En);
	T0COUNT_Init(Tn_MODE,Tn_CAPn);
	T1COUNT_Init(Tn_MODE,Tn_CAPn);
   	while(1)
   	{
   		tmp = T1TC;
   		while(tmp == T1TC);
   		sprintf(str,"T1TC = %ld; \n",T1TC);	//将计数值打印成字符串的形式
		SendStr();
   	}
#endif

#if(Tn_n == 2)
   	// 计数器2初始化
	T2MAT_Init(MAT_data,Tn_PR_data,Tn_T_MODE,Tn_EXT_MODE,Tn_MATn,Tn_INT_En);
	T0COUNT_Init(Tn_MODE,Tn_CAPn);
	T2COUNT_Init(Tn_MODE,Tn_CAPn);
   	while(1)
   	{
   		tmp = T2TC;
   		while(tmp == T2TC);
   		sprintf(str,"T2TC = %ld; \n",T2TC);	//将计数值打印成字符串的形式
 		SendStr();
  	}
#endif	
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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