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

📄 main.c

📁 44binit.s ----- 初始化中断、存储器、堆栈等
💻 C
字号:
/****************************************************************************
【文  件  名  称】44Btest.c
【功  能  描  述】三星S3C44B0X板demo程序代码
【程  序  版  本】2.0
【创建人及创建日期】龚俊//2003-07-02 15:27
【修改人及修改日期】龚俊//2004-2-12 9:18
****************************************************************************/

//***************************************************************************
#include <stdlib.h>
#include <string.h>

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


//*****************************************************************************
void Time_Pwm_Beep(void)
{
	rPCONE = 0x55ab;		
	//PE8-P0的引脚功能依次为:ENDIAN TOUT4、3、2、1、0 RXD0 TXD0 FOUT
	rPUPE |= 0xf0;		//TOUT4、3、2、1、0设置成不上拉,其他引脚上拉

	rTCFG0 = rTCFG0 & (~0xff) | 0x3f;	//死区长度为2;    Prescaler0=3f
	//定时器输入时钟频率计算公式 = MCLK/{prescaler+1}/{divider value}
	rTCFG1 = rTCFG1 & (~0xf) | 0x2;
	//定时器时钟 = (MCLK/prescaler+1)/8

	rTCNTB0 = 60;		//决定TOUT 0引脚PWM输出信号的频率
	rTCMPB0 = 30;		//决定TOUT 0引脚PWM输出高电平的信号宽度(rTCMPB0<rTCNTB0)

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

/****************************************************************************
【功能说明】系统主函数
****************************************************************************/
void Main(void)
{
	U16 BeepFreq = 800;	
	
	rNCACHBE0 = ((Non_Cache_End>>12)<<16)|(Non_Cache_Start>>12);
    //在上面的数据区域不使用高速缓存

    rSYSCFG = CACHECFG;    //8K字节cache,写缓冲使能,data abort使能

    Port_Init();		//IO口初始化
		
	Uart_Select( 0 ) ;		//选择串口0
	Uart_Init( 32000000, 57600 ) ;		
		//串口初始化,波特率为115200(系统主频为32MHz)
		
   	Uart_Printf( "\n\n\t优龙科技\n" ) ;
   	Uart_Printf( "Http://www.ucdragon.com\n\n" ) ;

   	Uart_Printf( "S3C44B0X定时器(PWM)测试!\n" ) ;

   	rPCONE = (rPCONE & 0x3ff3f) | ((0x2)<<6) ;
   		//GPE3引脚功能设置为TOUT(PWM输出)
   	rPUPE = rPUPE | (1<<3) ;
   		//禁止GPE3引脚的上拉电阻

   	Uart_Printf( "请按 + 增加PWM的输出频率,按 - 减小PWM的输出频率 :\n\n" ) ;
	SetBeepPwm( BeepFreq, 50 ) ;

    while( 1 )
    {
		U8 key;		
		
		key = Uart_Getch();
		Uart_SendByte( key );

		if( key == '+' )
			if( BeepFreq < 20000 )
				BeepFreq += 100 ;
		if( key == '-' )
			if( BeepFreq > 100 )
				BeepFreq -= 100 ;									
		
		SetBeepPwm( BeepFreq, 50 ) ;
		Uart_Printf( "\tNow beep frequence is %d\n", BeepFreq ) ;
	}			
}
//***************************************************************************

⌨️ 快捷键说明

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