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

📄 play.inc

📁 完整的方案
💻 INC
字号:
.define MOUDLE_DVR1600
//.define MOUDLE_S530
.define MOUDLE_MS01

.DEFINE BASE_SOUND_ADDR      0x8026
.DEFINE SOUND_A20            0x0000
.DEFINE SOUND_S480           0x0001
.DEFINE SOUND_S720           0x0002
.DEFINE SOUND_MS01           0x0003
.DEFINE SOUND_A1600          0x0004
.DEFINE SOUND_MS02           0x0005
.DEFINE SOUND_S200           0x0006
.DEFINE SOUND_S530           0x0007
.DEFINE MAX_SOUND_TYPE       0x0008
.DEFINE SACM_IDLE            0
.DEFINE SACM_PLAY            1
.DEFINE SACM_PLAYBACK        2
.DEFINE SACM_RECORD          3
.DEFINE MANUAL               0
.DEFINE AUTO                 1

.DEFINE RceMonitorOff        0
.DEFINE RceMonitorOn         1

//.DEFINE RecPrecisionConvertBit     0x0002
//.DEFINE RecPrecisionConvertBit_    0xfffd
.DEFINE RecCutEndFrameBit          0x0004
.DEFINE RecCutEndFrameBit_         0xfffb
.DEFINE PlayInternalSound          0x0008
.DEFINE PlayInternalSound_         0xfff7
.DEFINE C_RampDelay          120
.DEFINE C_Fosc_49M           0x0080
//.DEFINE C_Fosc_41M           0x0060
//.DEFINE C_Fosc_33M           0x0040
//.DEFINE C_Fosc_20M           0x0020     // (default)
//.DEFINE C_Fosc_24M           0x0000
.DEFINE C_SystemClock2         C_Fosc_49M


//.DEFINE C_Timer_Setting_8K_For_24MHz     0xF9FF
//.DEFINE C_Timer_Setting_9K_For_24MHz     0xFAAA
//.DEFINE C_Timer_Setting_10K_For_24MHz    0xFB33
//.DEFINE C_Timer_Setting_11K_For_24MHz    0xFBA2
//.DEFINE C_Timer_Setting_12K_For_24MHz    0xFBFF
//.DEFINE C_Timer_Setting_13K_For_24MHz    0xFC4E
//.DEFINE C_Timer_Setting_14K_For_24MHz    0xFC92
//.DEFINE C_Timer_Setting_15K_For_24MHz    0xFCCC
//.DEFINE C_Timer_Setting_16K_For_24MHz    0xFCFF
//.DEFINE C_Timer_Setting_17K_For_24MHz    0xFD2D
//.DEFINE C_Timer_Setting_18K_For_24MHz    0xFD55
//.DEFINE C_Timer_Setting_20K_For_24MHz    0xFD98
//.DEFINE C_Timer_Setting_24K_For_24MHz    0xFDFF
//.DEFINE C_Timer_Setting_28K_For_24MHz    0xFE48
//.DEFINE C_Timer_Setting_32K_For_24MHz    0xFE80

//.DEFINE C_Timer_Setting_8000_For_24MHz   0xF9FF
//.DEFINE C_Timer_Setting_9000_For_24MHz   0xFAAA
//.DEFINE C_Timer_Setting_10000_For_24MHz  0xFB33
//.DEFINE C_Timer_Setting_11000_For_24MHz  0xFBA2
//.DEFINE C_Timer_Setting_12000_For_24MHz  0xFBFF
//.DEFINE C_Timer_Setting_12500_For_24MHz  0xFC29
//.DEFINE C_Timer_Setting_13000_For_24MHz  0xFC4E
//.DEFINE C_Timer_Setting_13500_For_24MHz  0xFC72
//.DEFINE C_Timer_Setting_14000_For_24MHz  0xFC92
//.DEFINE C_Timer_Setting_14400_For_24MHz  0xFCAB
//.DEFINE C_Timer_Setting_14500_For_24MHz  0xFCB0
//.DEFINE C_Timer_Setting_14800_For_24MHz  0xFCC2
//.DEFINE C_Timer_Setting_15000_For_24MHz  0xFCCC
//.DEFINE C_Timer_Setting_15200_For_24MHz  0xFCDB
//.DEFINE C_Timer_Setting_15500_For_24MHz  0xFCE7
//.DEFINE C_Timer_Setting_15600_For_24MHz  0xFCED

//.DEFINE C_Timer_Setting_16000_For_24MHz  0xFCFF
//.DEFINE C_Timer_Setting_17000_For_24MHz  0xFD2D

//.DEFINE C_Timer_Setting_18000_For_24MHz  0xFD55


//-(0x10000-0x400*24000/n)-1
.DEFINE C_Timer_Setting_12500_For_49MHz  0xF851
.DEFINE C_Timer_Setting_13000_For_49MHz  0xF89D
.DEFINE C_Timer_Setting_13500_For_49MHz  0xF8E3
.DEFINE C_Timer_Setting_14500_For_49MHz  0xF961
.DEFINE C_Timer_Setting_15000_For_49MHz  0xF999
.DEFINE C_Timer_Setting_15625_For_49MHz  0xF9DB

.DEFINE C_Timer_Setting_16000_For_49MHz  0xFA00

.DEFINE C_Timer_Setting_16250_For_49MHz  0xFA17
.DEFINE C_Timer_Setting_16875_For_49MHz  0xFA4F
.DEFINE C_Timer_Setting_17000_For_49MHz  0xFA5A
.DEFINE C_Timer_Setting_17227_For_49MHz  0xFA6C
.DEFINE C_Timer_Setting_17915_For_49MHz  0xFAA3
.DEFINE C_Timer_Setting_18000_For_49MHz  0xFAAA
.DEFINE C_Timer_Setting_18125_For_49MHz  0xFAB4
.DEFINE C_Timer_Setting_18605_For_49MHz  0xFAD6
.DEFINE C_Timer_Setting_18750_For_49MHz  0xFAE1
.DEFINE C_Timer_Setting_19500_For_49MHz  0xFB13
.DEFINE C_Timer_Setting_19983_For_49MHz  0xFB31
.DEFINE C_Timer_Setting_20000_For_49MHz  0xFB33
.DEFINE C_Timer_Setting_20250_For_49MHz  0xFB42
.DEFINE C_Timer_Setting_20671_For_49MHz  0xFB5A
.DEFINE C_Timer_Setting_21250_For_49MHz  0xFB7B
.DEFINE C_Timer_Setting_21750_For_49MHz  0xFB96
//.DEFINE C_Timer_Setting_22050_For_49MHz  0xFBFF
.DEFINE C_Timer_Setting_22050_For_49MHz  0xFBA6
.DEFINE C_Timer_Setting_22500_For_49MHz  0xFBBB
.DEFINE C_Timer_Setting_23428_For_49MHz  0xFBE6
.DEFINE C_Timer_Setting_24000_For_49MHz  0xFBFF
.DEFINE C_Timer_Setting_24806_For_49MHz  0xFC20
.DEFINE C_Timer_Setting_25000_For_49MHz  0xFC28
.DEFINE C_Timer_Setting_25500_For_49MHz  0xFC3C
.DEFINE C_Timer_Setting_26000_For_49MHz  0xFC4E
.DEFINE C_Timer_Setting_27000_For_49MHz  0xFC71
.DEFINE C_Timer_Setting_29000_For_49MHz  0xFCB0
.DEFINE C_Timer_Setting_30000_For_49MHz  0xFCCC
.DEFINE C_Timer_Setting_32000_For_49MHz  0xFCFF
.DEFINE C_Timer_Setting_34000_For_49MHz  0xFD2D
.DEFINE C_Timer_Setting_36000_For_49MHz  0xFD55
.DEFINE C_Timer_Setting_44100_For_49MHz  0xFDD2


.DEFINE C_Timer_Setting_8K_For_49MHz     0xF3FF
.DEFINE C_Timer_Setting_9K_For_49MHz     0xF555
.DEFINE C_Timer_Setting_10K_For_49MHz    0xF666
.DEFINE C_Timer_Setting_11K_For_49MHz    0xF745
.DEFINE C_Timer_Setting_12K_For_49MHz    0xF7FF
.DEFINE C_Timer_Setting_16K_For_49MHz    0xF9FF
.DEFINE C_Timer_Setting_24K_For_49MHz    0xFBFF
.DEFINE C_Timer_Setting_32K_For_49MHz    0xFCFF
.DEFINE C_MS01_Timer_Setting             C_Timer_Setting_16K_For_49MHz
.DEFINE C_DVR_Rec_Timer_Setting          C_Timer_Setting_32000_For_49MHz
.DEFINE C_A1600_Timer_Setting            C_Timer_Setting_16000_For_49MHz

.DEFINE C_IRQ6_TMB2             0x0001;     //TMB2 IRQ6
.DEFINE C_IRQ6_TMB1             0x0002;     //TMB1 IRQ6
.DEFINE C_IRQ5_2Hz              0x0004;     //2Hz IRQ5
.DEFINE C_IRQ5_4Hz              0x0008;     //4Hz IRQ5
.DEFINE C_IRQ4_1KHz            	0x0010;     //1024Hz IRQ4
.DEFINE C_IRQ4_2KHz            	0x0020;     //2048 IRQ4
.DEFINE C_IRQ4_4KHz            	0x0040;     //4096 IRQ4
.DEFINE C_IRQ3_KEY              0x0080;     //Key Change IRQ3
.DEFINE C_IRQ3_Ext1             0x0100;     //Ext1 IRQ3
.DEFINE C_IRQ3_Ext2             0x0200;     //Ext2 IRQ3
.DEFINE C_IRQ2_TMB            	0x0400;     //Timer B IRQ2
.DEFINE C_FIQ_TMB               0x0800;     //Timer B FIQ
.DEFINE C_IRQ1_TMA            	0x1000;     //Timer A IRQ1
.DEFINE C_FIQ_TMA               0x2000;     //Timer A FIQ
.DEFINE C_IRQ0_PWM              0x4000;     //PWM IRQ0
.DEFINE C_FIQ_PWM               0x8000;     //PWM FIQ

//.DEFINE PORTA_INPUT            0101000000001100B  // 0000000000001100B    //0111111100000000B
//.DEFINE PORTA_OUTPUT           0101111111111100B  // 0000111111111100B    //0111111111111111B


.define BIT_RATE_10K            0
.define BIT_RATE_12K            1
.define BIT_RATE_14K            2
.define BIT_RATE_16K            3
.define BIT_RATE_20K            4
.define BIT_RATE_24K        		5

.DEFINE DVR1600_1600            0
.DEFINE DVR1600_DVR             1

.DEFINE KeyRecCutTime           576

//////////////////////////////////////////////////////////////////
// Define Area for I/O									
//////////////////////////////////////////////////////////////////
//PortA,PortB contain some special functions
P_IOA_Data:			.VDEF  0x7000;		// Write Data into data register and read from IOA pad
P_IOA_Buffer:   	.VDEF  0x7001;		// Write Data into buffer register and read from buffer register
P_IOA_Dir:      	.VDEF  0x7002;     // Direction vector for IOA
P_IOA_Attrib:   	.VDEF  0x7003;     // Attribute vector for IOA
P_IOA_Latch:		.VDEF  0x7004;     // Latch PortA data for key change wake-up

P_IOB_Data:         .VDEF  0x7005      // Write Data into the data register and read from IOB pad
P_IOB_Buffer:       .VDEF  0x7006      // Write Data into buffer register and read from buffer register
P_IOB_Dir:          .VDEF  0x7007      // Direction vector for IOB
P_IOB_Attrib:       .VDEF  0x7008  	// Attribute vector for IOB

P_FeedBack:     	.VDEF  0x7009;     // Clock form external R,C
P_TimerA_Data:  	.VDEF  0x700A;     // Data port for TimerA 
P_TimerA_Ctrl:  	.VDEF  0x700B;     // Control Port for TimerA
P_TimerB_Data:  	.VDEF  0x700C;     // Data port for TimerB
P_TimerB_Ctrl:  	.VDEF  0x700D;     // Control Port for TimerB
P_TimeBase_Setup:  	.VDEF  0x700E;     // TimerBase Freq. Set
P_TimeBase_Clear:  	.VDEF  0x700F;   	// Reset Timerbase counter
P_INT_Ctrl:     	.VDEF  0x7010;     // for read INT flag(R)
P_INT_Clear:      .VDEF  0x7011;     // Clear interrupt source
P_Watchdog_Clear:   .VDEF  0x7012;     // Watchdog Reset
P_SystemClock:      .VDEF  0x7013;     // Change system clock frequency(include go to standby mode)

P_ADC: 	        	.VDEF  0x7014;     // Data Port for AD
P_ADC_Ctrl:    		.VDEF  0x7015;     // Control Port for AD control
P_ADC_Status:   	.VDEF  0x7015;     // AD Port Status
P_DAC2:         	.VDEF  0x7016;     // Data Port for DAC2
P_PWM:          	.VDEF  0x7016;     // Data Port for PWM
P_DAC1:	        	.VDEF  0x7017;     // Data Port for DAC1
P_DAC_Ctrl:	    	.VDEF  0x702A;		// Control Port for two DAC and audio output mode
P_ADC_MUX_Ctrl:  	.VDEF  0x702B		// Control Port
P_ADC_LINEIN_Data:  .VDEF  0x702C		// Line in data

P_INT_Mask:         .VDEF   0x702D		//R/W INT enable/disable
P_UART_Command2:    .VDEF 	0x7022;		// Command2 Port for UART
//P_INT_Mask:         .VDEF     0x702D
.DEFINE P_UART_Command1       0x7021;                // Command1 Port for UART
.DEFINE P_UART_Data           0x7023;                // Data Port for UART
.DEFINE P_UART_BaudScalarLow  0x7024;            // Set Baud Rate scalar low
.DEFINE	P_UART_BaudScalarHigh 0x7025;		// Set Baud Rate scalar high



.ifdef MOUDLE_MS01
.EXTERNAL F_SACM_MS01_Play
.EXTERNAL F_SACM_MS01_Initial
.EXTERNAL F_SACM_MS01_Volume
.EXTERNAL F_SACM_MS01_Status
.EXTERNAL F_SACM_MS01_ServiceLoop
.EXTERNAL F_SACM_MS01_Stop
.external F_ISR_Service_SACM_MS01
.external F_IRQ2_Service_SACM_MS01
.external F_IRQ4_Service_SACM_MS01
.endif

.ifdef MOUDLE_S200
.EXTERNAL F_SACM_S200_Play
.EXTERNAL F_SACM_S200_Initial
.EXTERNAL F_SACM_S200_Volume
.EXTERNAL F_SACM_S200_Status
.EXTERNAL F_SACM_S200_ServiceLoop
.EXTERNAL F_SACM_S200_Stop
.external F_ISR_Service_SACM_S200
.endif
.ifdef MOUDLE_S530
.EXTERNAL F_SACM_S530_Play
.EXTERNAL F_SACM_S530_Initial
.EXTERNAL F_SACM_S530_Volume
.EXTERNAL F_SACM_S530_Status
.EXTERNAL F_SACM_S530_ServiceLoop
.EXTERNAL F_SACM_S530_Stop
.EXTERNAL F_SACM_S530_Speed
.EXTERNAL F_ISR_Service_SACM_S530
.endif
.ifdef MOUDLE_S480
.EXTERNAL F_SACM_S480_Play
.EXTERNAL F_SACM_S480_Initial
.EXTERNAL F_SACM_S480_Volume
.EXTERNAL F_SACM_S480_Status
.EXTERNAL F_SACM_S480_ServiceLoop
.EXTERNAL F_SACM_S480_Stop
.external F_ISR_Service_SACM_S480
.endif
.ifdef MOUDLE_DVR1600
.EXTERNAL F_SACM_DVR1600_Play
.EXTERNAL F_SACM_DVR1600_Initial
.EXTERNAL F_SACM_DVR1600_Volume
.EXTERNAL F_SACM_DVR1600_Status
.EXTERNAL F_SACM_DVR1600_ServiceLoop
.EXTERNAL F_SACM_DVR1600_Stop
.EXTERNAL F_SACM_DVR1600_PlaySequence
.EXTERNAL F_SACM_DVR1600_Rec
.EXTERNAL _SACM_DVR1600_Speed
//.EXTERNAL F_SACM_DVR1600_Speed_Initial
.external F_ISR_Service_SACM_DVR1600
.endif

⌨️ 快捷键说明

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