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

📄 main.c

📁 ZLG的LPC2478开发板的部分源代码
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			zhangmingjie
** Created date:		2007-3-26
** Version:				1.0
** Descriptions:		PWM定时器实验。
**------------------------------------------------------------------------------------------------------
** Modified by:			wuzhijian
** Modified date:		2007-09-03
** Version:				
** Descriptions:		对程序的风格以及注释略作调整,并检查代码。
**
** Rechecked by:		Litiantian	
********************************************************************************************************/
#include 	"config.h"
#define BEEP    (1 << 30)				// P3.30控制BEEP,低电平蜂鸣	

/******************************************************************************************************
** 函数名称:  InitBeepIO
** 功能描述:  初始化BEEP控制脚。
** 入口参数:  无
** 出口参数:  无
*******************************************************************************************************/
void InitBeepIO(void)
{   
	/* 初始化BEEP管脚 */
	PINSEL7 = 0x00000000;				// 设置管脚连接GPIO							
	FIO3DIR  = BEEP;					// 设置BEEP控制口输出						
	FIO3SET  = BEEP;
}

/*****************************************************************************************************
** 函数名称:  BEEP_Reverse
** 功能描述:  BEEP管脚取反。
** 入口参数:  无
** 出口参数:  无
*****************************************************************************************************/
void  BEEP_Reverse(void)
{   
	if ((FIO3SET & BEEP) == 0)
	{
		FIO3SET  = BEEP;				// 关闭BEEP	
	}
	else
	{
		FIO3CLR  = BEEP;
	}
}

/*****************************************************************************************************
** 函数名称:  PWM1TIMER_IRQ
** 功能描述:  PWM中断服务函数。
** 入口参数:  无
** 出口参数:  无
******************************************************************************************************/
void __irq PWM1TIMER_IRQ(void)
{   
	BEEP_Reverse();											// 蜂鸣器控制管脚取反
	PWM1IR      = 0x01;                   					// 复位PWM中断标志
    VICVectAddr = 0x00;										// 通知向量中断处理结束
}

/******************************************************************************************************
** 函数名称:  PWMT1IMER_Init
** 函数功能:  初始化PWM为定时器。0.5秒钟定时,PWMMR0匹配后复位PWMTC,并产生中断标志
** 入口参数:  无
** 出口参数:  无
*******************************************************************************************************/
void PWM1TIMER_Init(void)
{
	PWM1TCR  = 0x02;										// 复位PWM1定时器
	PWM1TC   = 0;											// 定时器设置为0
	PWM1PR   = 0;											// 时钟不分频
	PWM1MCR  = 0x03;										// 设置PWMMR0匹配后复位PWMTC,并产生中断标志
	PWM1MR0  = Fpclk / 2;									// 0.5秒钟定时
}

/*******************************************************************************************************
** 函数名称:  PWM_VICInit
** 函数功能:  初始化PWM的向量中断
** 入口参数:  无
** 出口参数:  无
*******************************************************************************************************/
void PWM_VICInit(void)						  
{
 	VICIntSelect  =0x00;									// 设置所有中断连接IRQ中断
 	VICIntEnClr  |= 1 << 8;									// 禁止PWM中断
 	VICVectAddr8  = (uint32)PWM1TIMER_IRQ;                	// 设置PWM中断服务程序地址 
 	VICVectPri8   = 0;                                 	 	// 设置中断优先级为最高优先级别0
 	VICIntEnable  = 1 << 8;									// 使能PWM中断
}

/*********************************************************************************************************
** 函数名称:  main
** 函数功能:  PWM定时器实验。
** 入口参数:  无。
** 出口参数:  为0时表明函数出错。
** 调试说明:  短接跳线组的BEEP和P3.30
*********************************************************************************************************/
int main(void)
{
	InitBeepIO();											// 初始化蜂鸣器管脚
	PWM1TIMER_Init();										// 初始化PWM定时器

	PWM_VICInit();											// 初始化PWM1的中断参数
	IRQEnable();								   			// IRQ中断使能

	PWM1TCR  = 0x01;										// 启动定时器
	while (1);
    return (0);
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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