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

📄 beep.c

📁 S3c2410下ADC[LTC1867]的驱动程序,在LCD上可以直接显示读取的AD数据
💻 C
字号:
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"
/****************************************************************************
【功能说明】蜂鸣器PWM测试
****************************************************************************/
uint32 freq_ct, freq_ct2,freq;
uchar fre;

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;     //timer0,divider = 1/8
			
	rTCNTB0 = (PCLK>>7)/freq;//rTCNTB0=PCLK/{(prescaler+1) * divider *freq}=PCLK/128*freq
	rTCMPB0 = rTCNTB0>>1;	//占空比50%   rTCMPB0=PCLK/256*freq
	
	//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 &= ~12;			//set GPB1 as output
	rGPBCON |= 4;
	rGPBDAT &= ~1;
}

void Buzzer_PWM_Run( void )
{
	freq = 2000 ;    // rTCNTB0=195
	Buzzer_Freq_Set( freq ) ;    //real beep freq=97Hz
}
void __irq pwm0_int(void)
  {
     ClearPending(BIT_TIMER0);
   /*  fre=!fre;
     if(fre)
       { rTCMPB0 = rTCNTB0>>1;}
     else
       { rTCMPB0 = rTCNTB0>>2;}*/
     freq_ct++;
     if(freq_ct>30)
       {
          freq_ct=0;
         freq_ct2++;
         if(freq_ct2>10)
             { 
                freq_ct2=0;
                if(rGPFDAT==(rGPFDAT&0x0F)|0x00)
                   { rGPFDAT=(rGPFDAT&0x0F)|0xf0; } //LED1-4 on  
                else
                    {rGPFDAT=(rGPFDAT&0x0F)|0x00; }  //LED1-4 off  
                freq+=100;
                Buzzer_Freq_Set(freq ) ; 
                if( freq>2000)
                  {
                     freq=10;    
                  }         
             }
       } 
 }
void timer0_set()
  {
     EnableIrq(BIT_TIMER0);
     pISR_TIMER0 =(unsigned) pwm0_int;
  }


⌨️ 快捷键说明

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