示例#1
0
static void setupIO(void)
{
	IO_SetMode(eCHARGE_ON_PORT, CHARGE_ON_PIN, IO_MODE_OUTPUT);
	IO_SetMode(eBATT_ADC_PORT, BATT_ADC_PIN, IO_MODE_INPUT);
	IO_SetMode(eCHARGE_STATE_PORT, CHARGE_STATE_PIN, IO_MODE_OUTPUT);
	
	IO_Control(eCHARGE_ON_PORT, CHARGE_ON_PIN, IO_OFF);
	IO_Control(eCHARGE_STATE_PORT, CHARGE_STATE_PIN, IO_OFF);
	
	SWS_TxInit(IO_PORTB, 1);
	SWS_SetBaudRate(LIB_SWS_BAUD_4800);
}
示例#2
0
void EXTI15_10_IRQHandler(void)
{
	if(EXTI->PR & EXTI_Line14)
	{
		EXTI->PR = EXTI_Line14;
		
		IO_Control(NULL);
		
		alarmFlag |= MICROWAVE_ALARM_FLAG;
	}
}
示例#3
0
int main(void)
{

	/* Disable watchdog: not required for this application */
	MCUSR &= ~(1 << WDRF);
	wdt_disable();

	setupTimer();
	setupIO();
	
	UI_Init();

	/* All processing interrupt based from here*/

	DO_TEST_HARNESS_SETUP();
	
	sei();

	// Update display on first application tick
	s_settings = Strobe_Init();
	s_bSettingsChanged = true;
	
	while (true)
	{
		DO_TEST_HARNESS_RUNNING();
		
		UI_Tick();
		
		if (TMR8_Tick_TestAndClear(&appTick))
		{
			applicationTick();
			DO_TEST_HARNESS_TICK();
		}

		if (TMR8_Tick_TestAndClear(&heartbeatTick))
		{
			IO_Control(IO_PORTB, 5, IO_TOGGLE);
		}
	}

	return 0;
}
示例#4
0
void EXTI1_IRQHandler(void)
{
	EXTI->PR = EXTI_Line1;
	IO_Control(NULL);
	alarmPulseCnt++;
	if(alarmStatusChange == 0)
	{
		alarmStatusChange = 1;
		alarmStatusHoldStartTime = rtcTimeSec;
		if(rtcTimeSec - alarmStartTime > 4)
			alarmChangeCnt = 0;
		if(alarmChangeCnt == 0)
			alarmStartTime = rtcTimeSec;
		alarmChangeCnt++;
		if(alarmChangeCnt >= 3)
		{
			if(rtcTimeSec - alarmStartTime <= 4)
				alarmFlag |= CAR_ALARM_PRESS_3TIMES_IN_4SEC_FLAG;
			alarmChangeCnt = 0;
		}
	}
}
示例#5
0
void EXTI9_5_IRQHandler(void)
{
	if(EXTI->PR & EXTI_Line5)
	{
		EXTI->PR = EXTI_Line5;
		
		IO_Control(NULL);
		
		sosStatusChange = 1;
		sosStatusHoldStartTime = rtcTimeSec;
		if(rtcTimeSec - sosStartTime > 4)
			sosChangeCnt = 0;
		if(sosChangeCnt == 0)
			sosStartTime = rtcTimeSec;
		sosChangeCnt++;
		if(sosChangeCnt >= 3)
		{
			if(rtcTimeSec - sosStartTime <= 4)
				alarmFlag |= SOS_ALARM_FLAG;
			sosChangeCnt = 0;
		}
		
	}
	if(EXTI->PR & EXTI_Line6)
	{
		EXTI->PR = EXTI_Line6;
	}
	if(EXTI->PR & EXTI_Line8)
	{
		RingCallProcess(NULL,NULL);
		EXTI->PR = EXTI_Line8;
	}
	if(EXTI->PR & EXTI_Line6)
	{
		//GPS_SetPulse();
		EXTI->PR = EXTI_Line6;
	}
}
示例#6
0
void EXTI0_IRQHandler(void)
{
	EXTI->PR = EXTI_Line0;
	IO_Control(NULL);
	alarmFlag |= ACC_ON_OFF_FLAG;
}