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

📄 demo.c

📁 义隆公司eSLZ000 dsp处理芯片一个播放midi的样例程序。
💻 C
字号:
//Define all resgeter address and regsiter bit
//Define intrinsic functions and Inline assember portotype
//Note: this file must at the top line of any file
#include		"ecc_extend.h"
#include		"c_register.h"

//eSL Macro define file
#include		"eSLMacro.h"

//Define all interrupt function
#include		"interruptvector.h"

//Define ReadKey functions
#include		"c_ReadKey.h"

#define P_init 0x00FF
void ICSleepMode(void);


int main(void)
{

    unsigned int __ram readkeyRAM[4]={0,0x00FF,0,0};   //initial readKey
    unsigned int __ram keyFlag=0;
    
   	//------------------------------
	//        I/O setting 
   	//------------------------------
   	_setIO(PDIRA,0xFFFF);           //set portA output(default low) 
   	_setIO(PCON1B,0xFFFF);          //set portBL pullup, wake(default high)
   	_setIO(PCON2B,0x5555);          //set portBH output(default low)
   	_setIO(PCONC,0x5555);           //set portC output(default low)
  	
  	//------------------------------
  	//       Audio initial 
  	//------------------------------
  	c_audio_ini();								//speech and melody initial setting
	c_mpwmon();					                //channel 1 play from PWM On

   
    
   	while(1)
   	{
  	  keyFlag=c_ReadKey(readkeyRAM,P_init);
  	  if((keyFlag&0x2000)==0x2000)               //detect if push
         {
          switch(keyFlag&0x0007)
             {
                case 0:
                      c_mstop();
                      c_playhead(100);
                      c_mvol(44);
                      c_mplay(_N05_ooz);         //midd play
                       break;
                case 1:
                      c_mstop();
                      c_playhead(100);
                      c_mvol(44);
                      c_mplay(_n06_ok_OOZ_rv2);         //midd play
                       break;
                case 2:
                       break;
                case 3:
                       break;
                case 4:
                       break;
                case 5:
                      
                       break;
                case 6:
                      
                       break;
                case 7:
                       c_mstop();               //midd stop
                                                              
                       break;       
                  
                default:
                       break;                          
            } 
        } 
      else if(c_mcheck())                      //check if midd syill play
         continue;
      else
         ICSleepMode();                        //sleep 
   }
   return 0;
}


void ICSleepMode(void)                         //IC sleep mode sub function
{
  c_mstop();
   c_playtail(100);
  _setIO(PORTA,0x0000);           //clear portA 
  _setIO(PORTB,0x0000);           //clear portB 
  _setIO(PORTC,0x0000);           //clear portC 
  _setIO(PORTD,0x0000);           //clear portD 
  SLEEPMODE();
  //return 0;
}


⌨️ 快捷键说明

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