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

📄 pwmvoice.c

📁 PwmVoice(编程器烧写) PwmVoice_Player.ewd
💻 C
📖 第 1 页 / 共 2 页
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File Name:           PwmVoice.c
** Last modified Date:  2008-07-18 
** Last Version:        v1.0
** Description:         PWM声音播放器
** 
**------------------------------------------------------------------------------------------------------
** Created By:          柴利明
** Created date:        2008-07-18 
** Version:             v1.0
** Descriptions:        
**		 		     
**
**------------------------------------------------------------------------------------------------------
** Modified by:        
** Modified date:
** Version:
** Description:
**
********************************************************************************************************/
  #include     "hw_memmap.h"
  #include     "hw_types.h"
  #include     "hw_ints.h"
  #include     "hw_nvic.h"
  #include     "hw_adc.h"
  #include     "hw_pwm.h"
  #include     "hw_gpio.h"
  #include     "sysctl.h"
  #include     "systick.h"
  #include     "gpio.h"
  #include     "timer.h"
  #include     "flash.h"
  #include     "adc.h"
  #include     "pwm.h"
  #include     "interrupt.h"
  #include     "config.h"
/*********************************************************************************************
                 端口初始化
**********************************************************************************************/
  #define KEY1    GPIO_PIN_7				   /*  定义KEY1为录音功能            */           
  #define KEY2    GPIO_PIN_1                               /*  定义KEY2为放音功能            */
  #define KEY3    GPIO_PIN_4                               /*  定义KEY3为擦除功能            */
  #define KEY4    GPIO_PIN_4                               /*  定义KEY4为停止功能            */
  #define KEY5    GPIO_PIN_1                               /*  防止JTAG失效                  */                  
  #define LED1    GPIO_PIN_0				   /*  定义LED1为录音指示            */
  #define LED2    GPIO_PIN_5                               /*  定义LED2为放音指示            */
  #define LED3    GPIO_PIN_4				   /*  定义LED3为擦除指示            */
  #define LED4    GPIO_PIN_6                               /*  定义LED4为停止指示            */
 
/*********************************************************************************************
                 变量初始化
**********************************************************************************************/
  uint32        WrAddr = 0;                                /*  初始化写起始地址为0;          */
  uint32	RdAddr = 0;	                           /*  初始化读起始地址为0;          */
  uint32        ADData = 0;                                /*  AD采集数据存储变量            */                            
  uint8 	WrData;                                    /*  写入FLASH存储变量             */
  uint8 	RdData;                                    /*  从FLASH读出数据存储变量       */
  uint32        RdDataConvert;                             /*  待转换的存储变量              */                            


/*******************************************************************************************
 **函数原形:void Go2JTAG(void)
 **功能描述:防止JTAG失效程序
 **参数说明:无
 **返回值:无
********************************************************************************************/

void Go2JTAG(void)
{
   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);            /*  使能GPIO端口B模块            */
   GPIODirModeSet(GPIO_PORTB_BASE,KEY5,GPIO_DIR_MODE_IN);  /*  设置PB1为输入                */
   if(GPIOPinRead(GPIO_PORTB_BASE,KEY5)==0)                /*  读写PB1的电平状态            */
   {
     while(1);                                             /*  循环                         */
   }
}

/*********************************************************************************************
 **函数原形:void GPIO_Port_C_ISR(void)
 **功能描述:录音功能:启动A/D采集音频信号,将信号存于FLASH中
 **参数说明:无
 **返回值:无
**********************************************************************************************/

void GPIO_Port_C_ISR(void)
{
  
  GPIOPinIntClear(GPIO_PORTC_BASE, KEY1);	           /*  清除中断标志                  */
  GPIOPinWrite(GPIO_PORTA_BASE, LED1, ~LED1);              /*  录音指示                      */
  GPIOPinWrite(GPIO_PORTC_BASE, LED2,  LED2);
  GPIOPinWrite(GPIO_PORTC_BASE, LED3,  LED3);
  GPIOPinWrite(GPIO_PORTC_BASE, LED4,  LED4);
  SSTF016B_WRSTART();                                      /*  启动FLASH写功能               */ 
  IntEnable(INT_TIMER0A);                                  /*  使能定时器0外设               */
  IntDisable(INT_TIMER1A);                                 /*  禁能定时器1外设               */
}
/***********************************************************************************************
 **函数原形:void GPIO_Port_A_ISR(void)
 **功能描述:放音功能:将音频数据从FLASH中读出,转换成PWM波。
 **参数说明:无
 **返回值:无
************************************************************************************************/

void GPIO_Port_A_ISR(void)
{
  GPIOPinIntClear(GPIO_PORTA_BASE, KEY2);		   /*  清除中断标志                  */
  GPIOPinWrite(GPIO_PORTA_BASE, LED1,  LED1);
  GPIOPinWrite(GPIO_PORTC_BASE, LED2,  ~LED2);             /*  放音指示                      */
  GPIOPinWrite(GPIO_PORTC_BASE, LED3,  LED3);
  GPIOPinWrite(GPIO_PORTC_BASE, LED4,  LED4);
  IntEnable(INT_TIMER1A);                               
  IntDisable(INT_TIMER0A);
}

/*************************************************************************************************
** 函数原形:void GPIO_Port_B_ISR(void)
** 功能描述:擦除FLASH中的数据
** 参数说明:无
** 返回值:无
*************************************************************************************************/
void GPIO_Port_B_ISR(void)
{
  GPIOPinIntClear(GPIO_PORTB_BASE, KEY3);        
  GPIOPinWrite(GPIO_PORTA_BASE, LED1,  LED1);
  GPIOPinWrite(GPIO_PORTC_BASE, LED2,  LED2);
  GPIOPinWrite(GPIO_PORTC_BASE, LED3,  ~LED3);
  GPIOPinWrite(GPIO_PORTC_BASE, LED4,  LED4);
  SSTF016B_Erase(0, 499);                                  /*  擦除芯片                      */
  WrAddr = 0;                                              /*  写地址归0                     */
  IntDisable(INT_TIMER0A);
  IntDisable(INT_TIMER1A);
  RdAddr = 0;                                              /*  读地址归0                     */
  GPIOPinWrite(GPIO_PORTA_BASE, LED1,  ~LED1);
  GPIOPinWrite(GPIO_PORTC_BASE, LED2,  ~LED2);
  GPIOPinWrite(GPIO_PORTC_BASE, LED3,  ~LED3);
  GPIOPinWrite(GPIO_PORTC_BASE, LED4,  ~LED4);

}

/**************************************************************************************************
** 函数原形:void GPIO_Port_D_ISR(void)
** 功能描述:停止录音和放音,即禁能TIMER0和TIMER1
** 参数说明:无
** 返回值:无
****************************************************************************************************/
void GPIO_Port_D_ISR(void)
{
  GPIOPinIntClear(GPIO_PORTD_BASE, KEY3);		
  GPIOPinWrite(GPIO_PORTA_BASE, LED1,  LED1);
  GPIOPinWrite(GPIO_PORTC_BASE, LED2,  LED2);
  GPIOPinWrite(GPIO_PORTC_BASE, LED3,  LED3);
  GPIOPinWrite(GPIO_PORTC_BASE, LED4, ~LED4);
  IntDisable(INT_TIMER0A);
  IntDisable(INT_TIMER1A);

}
/***************************************************************************************************
** 函数名称  Timer0A_ISR
** 函数功能  定时器0中断处理程序。工作在32位周期触发模式下。
** 输入参数  无。
** 输出参数  无。
***************************************************************************************************/
void Timer0A_ISR (void)
{  

⌨️ 快捷键说明

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