📄 main.c
字号:
/****************************************************************************
【文 件 名 称】Main.c
【功 能 描 述】FS2410XP教学平台实验程序
【程 序 版 本】3.0
【创建及创建日期】优龙公司/2005-XX-XX
【修改及修改日期】2005-5-23
****************************************************************************/
//头文件定义
#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#define MaxBeepFreq 20000
#define MinBeepFreq 20
/***************************************************************************
Function name: Beep
Parameter : freq:频率参数 ms:延迟
Description : 占空比一定,改变频率来控制蜂鸣器的声音
Return : void
Argument :
Autor & date :
****************************************************************************/
void Beep(U32 freq, U32 ms)
{
rGPBCON &= ~3; //set GPB0 as tout0, pwm output
rGPBCON |= 2;
rTCFG0 &= ~0xff; //与背光共用一个预分频器
rTCFG0 |= 0; //prescaler = 0 + 1
rTCFG1 &= ~0xf;
rTCFG1 |= 3; //mux = 1/16
rTCNTB0 = (GetMasterClock()>>4)/freq;
rTCMPB0 = rTCNTB0>>2; // 50%
rTCON &= ~0x1f;
rTCON |= 0xb; //disable deadzone, auto-reload, inv-off, update TCNTB0&TCMPB0, start timer 0
rTCON &= ~2; //clear manual update bit
Delay(ms);
rGPBCON &= ~3; //set GPB0 as tout0, pwm output
rGPBCON |= 1;
rGPBDAT &= ~1;
}
/***************************************************************************
Function name: TestPwm
Parameter : void
Description : 通过PWM来控制蜂鸣器
Return : void
Argument :
Autor & date :
****************************************************************************/
void TestPwm(void)
{
U16 BeepFreq = 500;
// U16 ratio = 50;
printf( "S3C2410A PWM Test( Beep ) !\n\n" ) ;
printf( "Press +/- to increase/reduce the frequency of beep !\n" ) ;
//printf( "Press h/l to increase/reduce the hi-ratio of beep !\n" ) ;
printf( "Press 'ESC' to Exit this test program !\n\n" );
Beep(BeepFreq, 200);
while( 1 )
{
U8 key;
key = getch();
putch( key );
if( key == '+' )
if( BeepFreq < 20000 )
BeepFreq += 100 ;
if( key == '-' )
if( BeepFreq > 100 )
BeepFreq -= 100 ;
if( key == ESC_KEY ) break ;
Beep( BeepFreq, 200 ) ;
//printf( "\tNow beep frequence is %dHz Hi-ratio %d%%\n", BeepFreq, ratio ) ;
printf( "Now beep frequence is %dHz\n", BeepFreq) ;
}
printf( "\n" ) ;
}
/***************************************************************************
Function name: Main
Parameter : void
Description : 初始化系统,串口,并调用PWM实验函数
Return : void
Argument :
Autor & date :
****************************************************************************/
void Main(void)
{
BoardInitStart(); //系统初始化,MMU初始化
SystemClockInit(); //系统时钟初始化
MemCfgInit(); //设置NAND FLASH的配置寄存器
PortInit(); //S3C2410X的GPIO初始化
SerialSwitch(0); //选择串口0
SerialChgBaud(115200); //波特率115200
while( 1 )
{
printf("FS2410XP PWM Test,please Enter 'ESC' to exit\n");
TestPwm(); //PWM控制
}
}
/****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -