Example #1
0
void SPU_struct::KeyProbe(int chan_num)
{
	channel_struct &thischan = channels[chan_num];
	if(thischan.status == CHANSTAT_STOPPED)
	{
		if(thischan.keyon && regs.masteren)
			KeyOn(chan_num);
	}
	else if(thischan.status == CHANSTAT_PLAY)
	{
		if(!thischan.keyon || !regs.masteren)
			KeyOff(chan_num);
	}
}
Example #2
0
void isr_low( void )
{
    unsigned char temp;
	unsigned short tval0, tval1;
	char *p;	


	// Clock
	if ( PIR1bits.TMR1IF ) {    // If a Timer1 Interrupt, Then... 
 	
        WriteTimer1( 0xD8F0 );  // 1 mS		

		vscp_timer++;

/************** Handle Init button **************/

		if ( PORTCbits.RC1 ) {
			vscp_initbtncnt = 0;
		}
		else {
			// Active
			vscp_initbtncnt++;
		}

/************** VSCP LED *****************/

		vscp_statuscnt++;
		if ( ( VSCP_LED_BLINK1 == vscp_initledfunc ) && ( vscp_statuscnt > 100 ) ) {

 	    	if ( PORTAbits.RA2 ) {
		       PORTAbits.RA2 = 0;
       	    }
		    else {
               PORTAbits.RA2 = 1;
	     	}	

			vscp_statuscnt = 0;
		}
		else if ( VSCP_LED_ON == vscp_initledfunc ) {
			PORTAbits.RA2 = 1;	
			vscp_statuscnt = 0;	
		}
		else if ( VSCP_LED_OFF == vscp_initledfunc ) {
			PORTAbits.RA2 = 0;
			vscp_statuscnt = 0;
		}

/*****************  Key    *********************/

        if( KeyTimer ) {
            KeyTimer--;
        }   
         else {
            KeyOff();
        }   

/***************** Red LED *********************/

        if( RedLedTimer ) {
            RedLedTimer--;
        }   
        else {
            RedLedOff();
        }   

/***************** Green LED *******************/

        if ( GreenLedTimer ) {
            GreenLedTimer--;
        }   
        else {
            GreenLedOff();
        }   

/***************** Beeper **********************/

        if ( BeeperTimer ) {
            BeeperTimer--;
        }  
        else {
            PORTCbits.RC0 = 0;
            if ( PWM_enable == OFF ) {
                OpenPWM1( PWM_f );
                SetDCPWM1( ( PWM_f * 2 ) - 6 );
                PWM_enable = ON;
            }
        }       

/**************** EmData Timer ****************/

        if ( EmDataTimer ){
            EmDataTimer--;
        }

		PIR1bits.TMR1IF = 0;     // Clear Timer1 Interrupt Flag
		
	}

	return;
}