/******************************************************************************* * Function Name : Axis3_Test * Description : Light Sensor Test. * Input : None * Output : None * Return : None *******************************************************************************/ void Axis3_Test(void) { char buf[24]; int32_t xoff = 0; int32_t yoff = 0; int32_t zoff = 0; int8_t x = 0; int8_t y = 0; int8_t z = 0; OLED_ClearScreen(); OLED_DisStrLine(0, 0, "Axis-3"); I2CInit(I2CMASTER, 0); acc_init(); /* Assume base board in zero-g position when reading first value. */ acc_read(&x, &y, &z); xoff = 0-x; yoff = 0-y; zoff = 0-z; // while(1) // { /* Accelerometer */ acc_read(&x, &y, &z); x = x+xoff; y = y+yoff; z = z+zoff; snprintf(buf, 20, "Acc x: %d ", x); OLED_DisStrLine(2, 0, (uint8_t *)buf); printf("\r\nAcc x: %d, ", x); snprintf(buf, 20, "Acc y: %d ", y); OLED_DisStrLine(3, 0, (uint8_t *)buf); printf("Acc y: %d, ", y); snprintf(buf, 20, "Acc z: %d ", z); OLED_DisStrLine(4, 0, (uint8_t *)buf); printf("Acc z: %d. ", z); delay_ms(250); // if(KEY_Read() == KEY_ESC) // break; // } }
/******************************************************************************* **函 数: LowPower_CheckTime **功 能: 进入低功耗倒计时 ( 10秒 ) **参 数: void **返 回: void **说 明: 需要100毫秒运行一次 100ms*100 = 10S *******************************************************************************/ void LowPower_CheckTime(void) { if(LowPowerTimeCount++ >= STANDBY_TIME_COUNT) { LowPowerTimeCount = 0; AirCondition_SaveData(); //保存空调配置数据 Save_CurrentKeyState(); SaveSerialNum(); Standby_Mode(); } else if(LowPowerTimeCount == STANDBY_TIME_COUNT1) { gSleepFlag = 1; // ShowLED_CloseAll(); ShowLED_LightON(gPrevoiusKeyValue,0xffff); OLED_ClearScreen(); gWukeUpForPassWord=1; gWukeUpForKey = 1; } }
/******************************************************************************* **函 数: AirCondition_FirstCMD **功 能: 显示界面从普通按键切换过来 **参 数: relateType --关联类型 **返 回: void *******************************************************************************/ void AirCondition_FullShow(void) { if(gAirContionData.PowerSwitch == AC_POWER_ON) //开状态 { OLED_ClearScreen(); OLED_ShowQuartPicAt(0,0,PicTab_AC[gAirContionData.SetMode]); //显示 空调模式图片 OLED_ShowQuartPicAt(0,4,PicTab_AC[gAirContionData.SetWindSpeed+5]); //显示 风速模式图片 OLED_DrawLine(64); //画竖线 OLED_Show32x323PicAt(12,2,PicTab_32x32[0]);//摄氏度 Show_Temper();//显示温度 //扫风 if(gAirContionData.SetWindSweep == AC_WINDSWEEP_OFF) { OLED_ShowString(9,3," ",0); } else if(gAirContionData.SetWindSweep == AC_WINDSWEEP_OpDown) //上下扫风 { OLED_ShowPicAt( 9, 6, 23, 16, &PicTab_Wind[0]); OLED_ShowString(11,3," ",0); } else if(gAirContionData.SetWindSweep == AC_WINDSWEEP_LeftWright) //左右扫 { OLED_ShowString(9, 3," ",0); OLED_ShowPicAt(11, 6, 23, 16, &PicTab_Wind[1*46]); } else if(gAirContionData.SetWindSweep == AC_WINDSWEEP_All) { OLED_ShowPicAt( 9, 6, 23, 16, &PicTab_Wind[0*46]); OLED_ShowPicAt(11, 6, 23, 16, &PicTab_Wind[1*46]); } } else OLED_ShowHalfPicAt(4,PicTab[19]); //空调关闭图片 //发送数据 AirCondition_SendData(); }
/******************************************************************************* **函 数: AirCondition_KeyHander **功 能: 空调面板按键数据处理 **参 数: keyNum --按键号 **返 回: void *******************************************************************************/ void AirCondition_KeyHander(u8 keyNum) { switch(keyNum) { case 1: // - 温度 - if(gAirContionData.SetMode != AC_MODE_AUTO) //自动模式不可以设置温度 { // if(gAirContionData.SetTemper > AC_MIN_TEMPER) gAirContionData.SetTemper--; if(gAirContionData.SetTemper > gAirContionData.SetMinTemp) gAirContionData.SetTemper--; } Show_Temper(); break; case 2: //电源按键 if(gAirContionData.PowerSwitch == AC_POWER_ON) { gAirContionData.PowerSwitch = AC_POWER_OFF; OLED_ClearScreen(); //OLED_ShowHalfPicAt(4,PicTab[9]); //空调关闭图片 OLED_ShowHalfPicAt(4,PicTab[18]); } else { gAirContionData.PowerSwitch = AC_POWER_ON; OLED_ClearScreen(); //OLED_ShowHalfPicAt(4,PicTab[10]); //空调打开图片 OLED_ShowHalfPicAt(4,PicTab[19]); } break; case 3: //+ 温度 + if(gAirContionData.SetMode != AC_MODE_AUTO) //自动模式不可以设置温度 { // if(gAirContionData.SetTemper < AC_MAX_TEMPER) gAirContionData.SetTemper++; if(gAirContionData.SetTemper < gAirContionData.SetMaxTemp) gAirContionData.SetTemper++; } Show_Temper(); break; case 4: // 模式 if(gAirContionData.SetMode < AC_MODE_MAX) gAirContionData.SetMode ++; else gAirContionData.SetMode = AC_MODE_AUTO; OLED_ShowQuartPicAt(0,0,PicTab_AC[gAirContionData.SetMode]); //显示 空调模式图片 break; case 5: // 风速 if(gAirContionData.SetWindSpeed < AC_WIND_MAX) gAirContionData.SetWindSpeed ++; else gAirContionData.SetWindSpeed = AC_WIND_AUTO; OLED_ShowQuartPicAt(0,4,PicTab_AC[gAirContionData.SetWindSpeed+5]); //显示 风速模式图片 break; case 6: //扫风开关 /* if ( gAirContionData.SetWindSweep < AC_WINDSWEEP_All ) { gAirContionData.SetWindSweep++; } else gAirContionData.SetWindSweep = AC_WINDSWEEP_OFF; */ // 液晶屏显示??? if ( gAirContionData.SetWindSweep < AC_WINDSWEEP_All ) { gAirContionData.SetWindSweep++; } else gAirContionData.SetWindSweep = AC_WINDSWEEP_OFF; // 液晶屏显示 if(gAirContionData.SetWindSweep == AC_WINDSWEEP_OFF) { OLED_ShowString(9,3," ",0); } else if(gAirContionData.SetWindSweep == AC_WINDSWEEP_OpDown) //上下扫风 { OLED_ShowPicAt( 9, 6, 23, 16, &PicTab_Wind[0]); OLED_ShowString(11,3," ",0); } else if(gAirContionData.SetWindSweep == AC_WINDSWEEP_LeftWright) //左右扫 { OLED_ShowString(9, 3," ",0); OLED_ShowPicAt(11, 6, 23, 16, &PicTab_Wind[1*46]); } else if(gAirContionData.SetWindSweep == AC_WINDSWEEP_All) { OLED_ShowPicAt( 9, 6, 23, 16, &PicTab_Wind[0*46]); OLED_ShowPicAt(11, 6, 23, 16, &PicTab_Wind[1*46]); } break; default : return;//break; } //发送数据 AirCondition_SendData(); }