コード例 #1
0
ファイル: suli.c プロジェクト: Aunsiels/Mesh_Bee
/*
 * initialize hardware
 * e.g. timer for millis/micros/pulseIn
 * For Arduino & mbed, no need to call this.
 * Within Seeed firmware of Mesh Bee, we have called this at a proper place.
 */
void suli_init(void)
{
    //init timer0 for millis/micros
    vAHI_TimerDIOControl(E_AHI_TIMER_0, FALSE);
    vAHI_TimerEnable(E_AHI_TIMER_0, 4, FALSE, TRUE, FALSE);  //1us/tick, period interrupt, no-output
    vAHI_TimerStartRepeat(E_AHI_TIMER_0, 30000, 60000);  //60ms/repeat
}
コード例 #2
0
/****************************************************************************
 *
 * NAME:            LAMP_vInit
 *
 * DESCRIPTION:     Initialises the lamp drive system
 *
 * PARAMETERS:      Name     RW  Usage
 *
 *
 * RETURNS:
 * void
 *
 ****************************************************************************/
PUBLIC void DriverBulb_vInit(void)
{
    bool_t bLampTimerInt = FALSE;

    static bool_t bInit = FALSE;

	if (bInit==TRUE)
    {
        /* Mimic PWM to led ? */
        #if (LAMP_LED_PIN < 21)
        {
            /* Configure as output */
            vAHI_DioSetDirection(0, (1 << LAMP_LED_PIN));
            /* Turn CFL lamp off */
            vAHI_DioSetOutput((1 << LAMP_LED_PIN), 0);
            /* Register interrupt callback */
			#if (JENNIC_CHIP == JN5148) || (JENNIC_CHIP == JN5148J01)
	            vAHI_Timer1RegisterCallback(vCbTimer1);
			#else
	            vAHI_Timer3RegisterCallback(vCbTimer1);
			#endif
            /* Note we want to generate interrupts */
            bLampTimerInt = TRUE;
        }
        #endif

        /* Indicate gateway mode on LED ? */
        #if (LAMP_GW_PIN < 21)
        {
            /* Configure as output */
            vAHI_DioSetDirection(0, (1 << LAMP_GW_PIN));
		}
		#endif

        /* Configure timer 0 to generate a PWM output on its output pin */
        vAHI_TimerEnable(LAMP_TIMER, LAMP_TIMER_PRESCALE, bLampTimerInt, bLampTimerInt, TRUE);
        vAHI_TimerConfigureOutputs(LAMP_TIMER, FALSE, TRUE);
        vAHI_TimerClockSelect(LAMP_TIMER, FALSE, TRUE);

        /********************************************/
        /* Voltage Monitoring System Initialisation */
        /********************************************/

         gu32BusVoltage = 0;
    }
    bInit=TRUE; /* 2nd late call will be used for initialisation */
}
コード例 #3
0
/****************************************************************************
 *
 * NAME:       		LAMP_vInit
 *
 * DESCRIPTION:		Initialises the lamp drive system
 *
 * PARAMETERS:      Name     RW  Usage
 *
 *
 * RETURNS:
 * void
 *
 ****************************************************************************/
PUBLIC void DriverBulb_vInit(void)
{
	bool_t bLampTimerInt = FALSE;

	static bool_t bInit = FALSE;

	if (bInit == FALSE)
	{

		/* Configure DIO pins */
		vAHI_DioSetDirection(0, (LAMP_ON_OFF_MASK | (1 <<LAMP_BLEEDER_PIN)));

		/* Turn CFL lamp off */
		vAHI_DioSetOutput(0, LAMP_ON_OFF_MASK);

		/* Mimic PWM to led ? */
		#if (LAMP_LED_PIN < 21)
		{
			/* Configure as output */
			vAHI_DioSetDirection(0, (1 << LAMP_LED_PIN));
			/* Turn CFL lamp off */
			vAHI_DioSetOutput(0, (1 << LAMP_LED_PIN)/*, 0*/);
			/* Register interrupt callback */
			vAHI_Timer0RegisterCallback(vCbTimer0);
			/* Note we want to generate interrupts */
			bLampTimerInt = TRUE;
		}
		#endif

		/* Configure timer 0 to generate a PWM output on its output pin */
		vAHI_TimerEnable(LAMP_TIMER, LAMP_TIMER_PRESCALE, bLampTimerInt, bLampTimerInt, TRUE);
		vAHI_TimerConfigureOutputs(LAMP_TIMER, FALSE, TRUE);
		vAHI_TimerClockSelect(LAMP_TIMER, FALSE, TRUE);

		/* turn on lamp - this is the default state */

		vAHI_DioSetOutput((1 << LAMP_BLEEDER_PIN),0);
		vAHI_DioSetOutput(LAMP_ON_OFF_MASK,0);


		vAHI_ApConfigure(E_AHI_AP_REGULATOR_ENABLE,
							 E_AHI_AP_INT_DISABLE,
							 E_AHI_AP_SAMPLE_8,
							 E_AHI_AP_CLOCKDIV_500KHZ,
							 E_AHI_AP_INTREF);

		while (!bAHI_APRegulatorEnabled());   /* spin on reg not enabled */

		vAHI_AdcEnable(E_AHI_ADC_SINGLE_SHOT, E_AHI_AP_INPUT_RANGE_2, ADC_USED);

		do
		{
			vAHI_AdcStartSample();
			while(bAHI_AdcPoll());
			gu32BusVoltage = ((uint32)u16AHI_AdcRead()*VBUS_MAXIMUM) >> ADC_BITS;
		} while (gu32BusVoltage< VBUS_TRIP_LO);

		vAHI_AdcDisable();

		vAHI_ApConfigure(E_AHI_AP_REGULATOR_DISABLE,
						 E_AHI_AP_INT_DISABLE,
					     E_AHI_AP_SAMPLE_8,
						 E_AHI_AP_CLOCKDIV_500KHZ,
						 E_AHI_AP_INTREF);

		vAHI_TimerStartRepeat(LAMP_TIMER, PWM_COUNT, PWM_COUNT );

		bInit = TRUE;
		bIsOn = TRUE;

	}