?? main.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 + -