void SIG_OUTPUT_COMPARE3A( void )
	{
		//vSystemTimer++;
		//sei();

		//incSystemTimer();

		vPortYieldFromTick();
		asm volatile ( "reti" );
	}
示例#2
0
ISR (TCC0_OVF_vect, ISR_NAKED) {
    /*
     * Context switch function used by the tick.  This must be identical to
     * vPortYield() from the call to vTaskSwitchContext() onwards.  The only
     * difference from vPortYield() is the tick count is incremented as the
     * call comes from the tick ISR.
     */
    vPortYieldFromTick();
    asm volatile ( "reti" );
}
void RT_VECT (void)
{
	// For the preemptive scheduler, enable a context switch
	#if configUSE_PREEMPTION == 1
		vPortYieldFromTick ();
		asm volatile ( "reti" );
	#else
	// For the cooperative scheduler, all this does is increment the tick count.  
	// We don't need to switch context; that's done by manual calls to taskYIELD()
		vTaskIncrementTick ();
	#endif
}
示例#4
0
	void SIG_OUTPUT_COMPARE1A( void )
	{
		vPortYieldFromTick();
		asm volatile ( "reti" );
	}
示例#5
0
文件: port.c 项目: js9e13/Y2Labs
	void TIMER1_COMPA_vect( void )
	{
		vPortYieldFromTick();
		asm volatile ( "reti" );
	}
示例#6
0
	/*
	 * Tick ISR for preemptive scheduler.  We can use a __task attribute as
	 * the context is saved at the start of vPortYieldFromTick().  The tick
	 * count is incremented after the context is saved.
	 */
	__task void SIG_OUTPUT_COMPARE1A( void )
	{
		vPortYieldFromTick();
		asm( "reti" );
	}
示例#7
0
ISR (TCC0_OVF_vect, ISR_NAKED) {
    vPortYieldFromTick();
    asm volatile ( "reti" );
}
示例#8
0
		//#warning "Timer3 used for PRE-EMPTIVE scheduler."
		ISR(TIMER3_COMPA_vect, ISR_NAKED)
		{
			vPortYieldFromTick();
			asm volatile ( "reti" );
		}
示例#9
0
	ISR(portSCHEDULER_ISR, ISR_NAKED)
	{
		vPortYieldFromTick();
		__asm__ __volatile__ ( "reti" );
	}
示例#10
0
		ISR(TCC1_OVF_vect,ISR_NAKED)
		{
			vPortYieldFromTick();
		}