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

📄 timer.c

📁 8019测试源码for arm s3c44b0
💻 C
字号:
#include <string.h>
#include "..\inc\option.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\def.h"
#include "..\inc\timer.h"
//***************************************************************************

/****************************************************************************
【功能说明】定时器初始化,让PE7、6、5、4输出PWM信号
****************************************************************************/
void Test_Timer(void)
{
	rPCONE = 0xaa6b;		
	//PE8-P0的引脚功能依次为:ENDIAN TOUT4、3、2、1、0 RXD0 TXD0 FOUT
	rPUPE |= 0xf0;		//TOUT4、3、2、1、0设置成不上拉,其他引脚上拉

	rTCFG0 = 0x23f3f3f;		//死区长度为2;    Prescaler0/1/2=3f,3f,3f
	//定时器输入时钟频率计算公式 = MCLK/{prescaler+1}/{divider value}
	rTCFG1 = 0x222222;		// Interrupt; Devider value = 1/8
	//定时器时钟 = (MCLK/prescaler+1)/8

    Uart_Printf("\n【定时器1、2、3、4测试:】\n");

	rTCNTB1 = 24000;		//决定TOUT 1引脚PWM输出信号的频率
	rTCNTB2 = 37000;		//决定TOUT 2引脚PWM输出信号的频率
	rTCNTB3 = 50000;		//决定TOUT 3引脚PWM输出信号的频率
	rTCNTB4 = 64000;		//决定TOUT 4引脚PWM输出信号的频率

	rTCMPB1 = 12000;		//决定TOUT 1引脚PWM输出高电平的信号宽度(rTCMPB1<rTCNTB1)
	rTCMPB2 = 18000;		//决定TOUT 2引脚PWM输出高电平的信号宽度(rTCMPB2<rTCNTB2)
	rTCMPB3 = 30000;		//决定TOUT 3引脚PWM输出高电平的信号宽度(rTCMPB3<rTCNTB3)
	rTCMPB4 = 42000;		//决定TOUT 4引脚PWM输出高电平的信号宽度(rTCMPB4<rTCNTB4)

//	rTCON = 0xaaaa0a;		//自动重装,输出取反关闭,更新TCNTBn、TCMPBn,死区控制器关闭
//	rTCON = 0x999909;		//开始PWM输出(不使用死区控制器,上升沿会非常陡峭,是标准矩形波)
//	rTCON = 0xeeee0e;		//自动重装,输出取反打开,更新TCNTBn、TCMPBn,死区控制器关闭
//	rTCON = 0xdddd0d;		//开始PWM输出(不使用死区控制器,上升沿会非常陡峭,是标准矩形波)
//	rTCON = 0xaaaa1a;		//自动重装,输出取反关闭,更新TCNTBn、TCMPBn,死区控制器打开
//	rTCON = 0x999919;		//开始PWM输出(使用死区控制器,上升沿会变得平滑,适用于功率器件控制)

	rTCON = 0xaaaa0a;		//自动重装,输出取反关闭,更新TCNTBn、TCMPBn,死区控制器关闭
	rTCON = 0x999900;		//停止蜂鸣器的叫声
}
//***************************************************************************

⌨️ 快捷键说明

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