Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
2410beep.c
Package: arm_exam.rar [view]
Upload User: mhstny
Upload Date: 2022-08-05
Package Size: 793k
Code Size: 2k
Category:
ARM-PowerPC-ColdFire-MIPS
Development Platform:
Unix_Linux
- #include "2410addr.h"
- #include "2410lib.h"
- #include "def.h"
- void Buzzer_Freq_Set( U32 freq );
- void Buzzer_Stop( void );
- void BUZZER_PWM_Test( void );
- void xmain(void)
- {
- ChangeClockDivider(1, 1);
- ChangeMPllValue(0xa1,0x3,0x1);
- Port_Init();
- Uart_Select(0);
- Uart_Init(0, 115200);
- BUZZER_PWM_Test();
- while(1);
- }
- /****************************************************************************
- 【功能说明】蜂鸣器PWM测试
- ****************************************************************************/
- void BUZZER_PWM_Test( void )
- {
- U16 freq = 2000 ;
- Uart_Printf( "nBUZZER TEST ( PWM Control )n" );
- Uart_Printf( "Press +/- to increase/reduce the frequency of BUZZER !n" ) ;
- Uart_Printf( "Press 'ESC' key to Exit this program !nn" );
- Buzzer_Freq_Set( freq ) ;
- while( 1 )
- {
- U8 key = Uart_Getch();
- if( key == '+' )
- {
- if( freq < 20000 )
- freq += 10 ;
- Buzzer_Freq_Set( freq ) ;
- }
- if( key == '-' )
- {
- if( freq > 11 )
- freq -= 10 ;
- Buzzer_Freq_Set( freq ) ;
- }
- Uart_Printf( "tFreq = %dn", freq ) ;
- if( key == ESC_KEY )
- {
- Buzzer_Stop() ;
- return ;
- }
- }
- }
- void Buzzer_Freq_Set( U32 freq )
- {
- rGPBCON = rGPBCON & ~(3<<0)|(1<<1);//set GPB0 as tout0, pwm output
- rTCFG0 = rTCFG0 & ~0xff|15; //prescaler = 15
- rTCFG1 = rTCFG1 & ~0xf|2;//divider = 1/8
- rTCNTB0 = (PCLK>>7)/freq;//rTCNTB0=PCLK/{(prescaler+1) * divider *freq}
- rTCMPB0 = rTCNTB0>>1; //占空比50%
- //disable deadzone, auto-reload, inv-off, update TCNTB0&TCMPB0, start timer 0
- rTCON = rTCON & ~0x1f|(0<<4)|(1<<3)|(0<<2)|(1<<1)|(1);
- rTCON &= ~(1<<1); //clear manual update bit
- }
- void Buzzer_Stop( void )
- {
- rGPBCON |= 1;
- rGPBCON = rGPBCON & ~3|1; //set GPB0 as output
- rGPBDAT &= ~1;//output 0
- }