Exemplo n.º 1
0
void OPT_Get_Result()
{
    if(GlobalStruct.OPT_Status == 0)
    {
        if(OPT_StartConvert())
        {
            SetTimerTask(OPT_Get_Result, 1000);
            GlobalStruct.OPT_Status = 1;
        }
        else
        {
            SetTimerTask(OPT_Get_Result, 300);
            GlobalStruct.OPT_Status = 0;
        }
        
    }
    else if(GlobalStruct.OPT_Status == 1)
    {
        if(OPT_IsReady())
        {
            OPT_GetResultString(&GlobalStruct.Lux);
            SetTimerTask(OPT_Get_Result, 2000);
            GlobalStruct.OPT_Status = 0;
        }
        else
        {
            SetTimerTask(OPT_Get_Result, 800);
        }
        
    }
}
Exemplo n.º 2
0
void KeyScan(void){
	if BitIsClear(KEY_PORTIN_STEP, KEY_STEP_PORT)
		SetBit(PrevKey, KEY_STEP_FLAG);
	if BitIsClear(KEY_PORTIN_OK, KEY_OK_PORT)
		SetBit(PrevKey, KEY_OK_FLAG);
	if (PrevKey)											//Какая-то клавиша нажата, запускаем функцию проверки через защитынй интервал
		SetTimerTask(KeyCheck, PROTECT_PRD_KEY);
	else													//Ничего не нажато, продолжаем сканировать
		SetTimerTask(KeyScan, SCAN_PERIOD_KEY);
}
Exemplo n.º 3
0
void RunTasks (void)
{
	SetTimerTask(TaskLedOn,1000);
	SetTimerTask(TaskUART,1000);
	SetTimerTask(TaskADC3,10);
	//SetTimerTask(TaskAlarm,12000);
	//SetTimerTask(TaskPWM,25);
	//SetTimerTask(TaskTurnOnPhone, 1000);
	//SetTimerTask(TaskSideLights,25);
	//fprintf(stdout,"### START ###\r\n");
	//fprintf(stdout,"ATE0\r\n");
	wdt_enable(WDTO_120MS);
}
Exemplo n.º 4
0
void Display_Controll()
{
	switch(GlobalStruct.OS_Status)
		{
			case 0:
				SetTask(ScreenSaver_Display);
                SetTimerTask(Display_Controll, 1000);
				break;
			case 1:
				SetTask(Main_Display_Print);
                SetTimerTask(Display_Controll, 250);
		}
	
}
Exemplo n.º 5
0
void TaskWaitButtonOff (void){
	if(PM_PinIsClear(BUTTON_PLUS) ||
	   PM_PinIsClear(BUTTON_MINUS) || 
	   PM_PinIsClear(BUTTON_ON_OFF))
	{
		SetTimerTask(TaskWaitButtonOff,5);		
		if (++pressedTime > 45)		
		{
			pressedTime = 45;
			ChangePwd();
		}		
		return;
	}
	pressedTime = 0;
	SetTimerTask(TaskScanButtons,10);
}
Exemplo n.º 6
0
void espUartTx(u08 Cmd, u08* Value, u08 Len){
	if espModuleIsNot()											//Нет модуля, ничего не делаем
		return;
	while(FIFO_SPACE(espTxBuf) < (Len+6)){						//Ждем пока буфер не освободится
		TaskManager();
		if espModuleIsNot(){									//Не удалось определить наличие модуля
			return;
		}
	}

	u08 FlagInt = SREG & SREG_I;
	cli();														//Формируется пакет
	FIFO_PUSH(espTxBuf, CMD_CLCK_PILOT1);
	FIFO_PUSH(espTxBuf, CMD_CLCK_PILOT2);
	FIFO_PUSH(espTxBuf, CMD_CLCK_PILOT1);
	FIFO_PUSH(espTxBuf, CMD_CLCK_PILOT2);
	FIFO_PUSH(espTxBuf, Len);
	while(Len){
		FIFO_PUSH(espTxBuf, *Value++);
		Len--;
	}
	FIFO_PUSH(espTxBuf, Cmd);
	epsTxStart();
	if (FlagInt)
		sei();
	espAttemptLinkSet();
	SetTimerTask(espTimeoutError, ESP_ERR_TIMEOUT);				//Таймаут ответа от модуля
}
Exemplo n.º 7
0
void TaskAlarm (void) {
	
	if (PM_PinIsClear(ALARM_STATUS) && PM_PinIsClear(ALARM_PAGER))//fprintf(stdout, "Alarm in GuardMode");
	{
		
	} else if (PM_PinIsClear(ALARM_STATUS) && PM_PinIsSet(ALARM_PAGER))
	{
		//fprintf(stdout, "Alarm is CALLING");
		if (BitIsClear(status, ST_ALARM))
		{
			SetTask(TaskCall);	
		}
	} else 
	{
		/*if (PM_PinIsSet(ALARM_STATUS))
		{
			fprintf(stdout, "STATUS is High\t");

		} else
		{
			fprintf(stdout, "STATUS is low\t");
		}
		if (PM_PinIsSet(ALARM_PAGER))
		{
			fprintf(stdout, "PAGER is High\n");

		} else
		{
			fprintf(stdout, "PAGER  is low\n");
		}*/	
	}
	SetTimerTask(TaskAlarm, 1000);
}
Exemplo n.º 8
0
void TaskUART (void)
{
	//fprintf(stdout, "pwm:%d\t 12v:%d\tOCR:%d\r\n", adc_v[ADC_PIN_RES_PWM], adc_v[ADC_PIN_12V],OCR1B);
	//fprintf(stdout, "U_1200mV:%d, U_1320mV:%d, U_1200mV:%d\t%d0\n", CONST_U_1200mV, CONST_U_1280mV, adc_v[ADC_PIN_12V], 50*adc_v[ADC_PIN_12V]/1023*3);
	//fprintf(stdout, "countOn: %d\t countOff:%d\n", countOn/4, countOff/4);
	SetTimerTask(TaskUART,1000);
}
Exemplo n.º 9
0
void Start_Display()
{
    SetTimerTask(Check_OPT, 10);
    LCD_WS0010Start();
    Add_To_DDR("OS Start");
    Print_DDR();
}
Exemplo n.º 10
0
inline void BeginScakKeyRepeat(void){						//Начать обработку следующего нажатия
#ifdef EXTERNAL_INTERAPTS_USE
	GICR |= KEY_INT_MASK;									
#else
	SetTimerTask(KeyScan, SCAN_PERIOD_KEY);
#endif
}
Exemplo n.º 11
0
void TaskCheckSideLights (void)
{
	if (adc_v[ADC_PIN_12V] < U_mV(1300))
	{
		//turnOFF after 60S
		LightsCounter--;
		if (adc_v[ADC_PIN_12V] < U_mV(1200))
		{
			//turnOFF after 30S
			LightsCounter--;						
		}
	} else // (U > 1300mV)
	{
		LightsCounter = (LightsCounter < 0) ? 0 : LightsCounter;
		LightsCounter = (LightsCounter > 3) ? 3 : LightsCounter+1;
		//turnON after 3S
	}		
	SetTimerTask(TaskCheckSideLights,1000);
	if (LightsCounter < -60){ //turnON after 3S
		SwithLights(OFF);
		LightsCounter = 0;
	} else if (LightsCounter >= 3) //turnON after 3S
	{
		SwithLights(ON);
		LightsCounter = 0;
	}
	
	// Check alarm mode
	if (PM_PinIsClear(ALARM_STATUS)) //in Guard mode
	{
		SwithLights(OFF);
		LightsCounter = 0;		
	}
}
Exemplo n.º 12
0
void TaskScanButtons (void){	
	if (PM_PinIsClear(BUTTON_PLUS)){
		PM_OnPin(LED_GREEN); //push pressed
		pressedTime = 0;
		ChangePwd();
		SetTimerTask(TaskWaitButtonOff,10);		
		SetTimerTask(TaskGreanLedOff,100);		
		return;
	}
	if (PM_PinIsClear(BUTTON_MINUS)){
		PM_OnPin(LED_RED); //push pressed
		pressedTime = 0;
		ChangePwd();
		SetTimerTask(TaskWaitButtonOff,10);		
		SetTimerTask(TaskRedLedOff,100);
		return;
	}
	
	if (PM_PinIsClear(BUTTON_ON_OFF)){
		SetTimerTask(TaskWaitButtonOff,10);
		SetTimerTask(TaskSwitchLamp,10);
		return;
	}
	SetTimerTask(TaskScanButtons, 10);
	return;	
}
Exemplo n.º 13
0
void Initial()
{
	CyGlobalIntEnable;
    //Check_Boot();
    Timer_RTOS_Start();
    PWM_Start();
    I2C_Start();
    UART_Start();
    RTC_Start();
    RTC_SetPeriod(1,1000);
    RTOS_Start();
    SetTask(Brightles_PID_Controll);
    LCD_WS0010Start();
    SetTask(WaitPowerStab);
    SetTimerTask(OPT_Get_Result, 1300);
    //BLE_Status();
    GlobalStruct.OS_Status = 0;
    SetTimerTask(Display_Controll, 2000);
}
Exemplo n.º 14
0
void TaskCall (void) {
	switch(callTime){
		case 0:
		case 15:
			SetBit(status, ST_ALARM);
			//fprintf_P(stdout, PSTR("ATDP+79082375997;\r\n"));
		break;
	}
	callTime++;
	
	SetTimerTask(TaskCall, 1000);
}
Exemplo n.º 15
0
void espTimeoutError(void){
	if (espAttemptIsEnded()){								//Остались попытки?
		espModuleRemove();									//Считаем, что модуль отсутствует
	}
	else{
		espStatusFlags--;									//Минус одна попытка
		espReset();											//Сбрасываем
		FIFO_FLUSH(espTxBuf);
		//SetTimerTask(espCheckStart, CLK_TIMEOUT);			//И запускаем проверку модуля
		espStart();
		SetTimerTask(espTimeoutError, ESP_WHITE_START);		//Ждем пока модуль не перестартует
	}
}
Exemplo n.º 16
0
void InitKeyboard(void){
	MenuIni();
	ClearBit(KEY_PORTIN_OK, KEY_OK_PORT);
	ClearBit(KEY_PORTIN_STEP, KEY_STEP_PORT);
#ifdef EXTERNAL_INTERAPTS_USE
	MCUCR |= (1<<ISC01) | (1<<ISC00) |						//По спадающему уровню на INTo
			 (1<<ISC11) | (1<<ISC10);						//по спадающему на INT1
	GICR |= (1<<INT0) | (1<<INT1);							//Разрешить прерывание от кнопок
#else
	SetTimerTask(KeyScan, SCAN_PERIOD_KEY);
#endif
	PrevKey = 0;
	Key = 0;
}
Exemplo n.º 17
0
void TaskPWM (void) {
	SetTimerTask(TaskPWM,100);
	//char logTmp = (char)(adc_v[ADC_PIN_RES_PWM] & 0xFF);
	//fprintf(stdout, "%c", logTmp);
	if (adc_v[ADC_PIN_RES_PWM] <= 15)
	{
		adc_v[ADC_PIN_RES_PWM] = 0;
		TCCR1A = 0;
	} else
	{
		TCCR1A |= (1<<WGM11) | (1<<COM1A1) | (1<<COM1B1);
	}
	OCR1A = adc_v[ADC_PIN_RES_PWM]*ICR_MAX/1024;
	OCR1B = OCR1A;	
}
Exemplo n.º 18
0
void Brightles_PID_Controll()
{
    volatile uint8 Procent = 0;
    volatile uint8 PWM;
    if(GlobalStruct.Lux > 0)
    {
        Procent = GlobalStruct.Lux / 160;
        if(Procent > 100) Procent = 100;
        PWM = (uint8)(68 - (0.68 * Procent));
        PWM_WriteCompare1(PWM);
    }
    else
    {
        PWM = 68;
        PWM_WriteCompare1(PWM);
    }
    SetTimerTask(Brightles_PID_Controll, 2000);
}
Exemplo n.º 19
0
void TaskADC3 (void)
{
	adc_v[ADC_PIN_RES_PWM] = adc_read(ADC_PRESCALER_64, ADC_VREF_AVCC, ADC_PIN_RES_PWM);
	adc_v[ADC_PIN_12V] = adc_read(ADC_PRESCALER_64, ADC_VREF_AVCC, ADC_PIN_12V);
	SetTimerTask(TaskADC3,50);
}
Exemplo n.º 20
0
void TaskLedOn (void)
{
	SetTimerTask(TaskLedOn,10);
	//PORTB = 0x05;
}
Exemplo n.º 21
0
void Task1 (void)
{
	SetTimerTask(Task2, 5);
	// LED_PORT  ^=1<<LED1;
	digitalWrite(led, HIGH);
}
Exemplo n.º 22
0
void WaitPowerStab()
{
   SetTimerTask(Start_Display, 1000);
}
Exemplo n.º 23
0
 //UPDATE 
 void SetTask(TPTR TS){  // Поставить задачу в очередь для немедленного выполнения                           
 SetTimerTask(TS,0);
}
Exemplo n.º 24
0
void Task2 (void)
{
	SetTimerTask(Task1,5);
	// LED_PORT  &= ~(1<<LED1);
	digitalWrite(led, LOW);
}