timer.c

来自「44binit.s ----- 初始化中断、存储器、堆栈等」· C语言 代码 · 共 43 行

C
43
字号
/****************************************************************************
【文  件  名  称】Timer.c
【功  能  描  述】三星S3C44B0X板定时器程序代码
【程  序  版  本】2.0
【创建人及创建日期】龚俊//2003-07-02 15:27
【修改人及修改日期】龚俊//2004-2-16 11:39
****************************************************************************/

//***************************************************************************
#include "..\inc\def.h"
#include "..\inc\option.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"

/****************************************************************************
【功能说明】
****************************************************************************/
#define	MaxBeepFreq	20000
#define	MinBeepFreq	20

void SetBeepPwm( U16 Freq, U8 HiRatio )
{
	if( Freq > MaxBeepFreq )
		Freq = MaxBeepFreq;
	if( HiRatio > 100 )
		HiRatio = 100 ;	
		
	rTCON  	&= 0xfffffff0;					// clear manual update bit, stop Timer2

	rTCFG0 	&= 0xffffff00;					// set Timer 2&3 prescaler 0

	rTCFG1 	&= 0xfffffff0;					// set Timer 2 MUX 1/16
	rTCFG1  |= 0x00000003;					// set Timer 2 MUX 1/16

	rTCNTB0	 = MCLK/(Freq*16);				//if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
	rTCMPB0  = (rTCNTB0*(100-HiRatio))/100;	//if set inverter on,  when TCNT2<=TCMP2, TOUT is low,  TCNT2>TCMP2, TOUT is high

	rTCON = rTCON & (~0xf) | 0x0a;
	//自动重装,输出取反关闭,更新TCNTBn、TCMPBn,死区控制器关闭
	rTCON = rTCON & (~0xf) | 0x09;		//开启蜂鸣器的叫声
}
//***************************************************************************

⌨️ 快捷键说明

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