AB1601低功耗之IIC和PWM控制注意事项
生活随笔
收集整理的這篇文章主要介紹了
AB1601低功耗之IIC和PWM控制注意事项
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DRV_Uart_Flush(uart1_ins);
DoorIicDeInit();
DRV_OdGpio_IeSet(1<<0, 0);//這個地方非常重要,否則非常耗電
DRV_OdGpio_IeSet(1<<1, 0);
DoorRfPowDisable();//id card 電源關閉
SleepDeal();
DRV_OdGpio_IeSet(1<<0, 1);//這個地方非常重要,否則IIC死機
DRV_OdGpio_IeSet(1<<1, 1);
DoorIicInit();
DoorPwmNormalMode();//打開PWM
retFlag = TouchKeyPressChk();//讀iic用來起延時的作用
if(retFlag == 1)
{
SetPowModeChangeFlag(1);//啟動模式切換
goto END_OK;
}
for(i=0; i<100; i++)
{
retFlag = DoorGetRfPwmChkIoStateTest();//檢測ID卡是否有效
if(retFlag == 1)
{
break;
}
}
if(retFlag == 1)
{
SetPowModeChangeFlag(1);//啟動模式切換
}
else
{
DoorPwmLpMode();//關閉PWM
}
/*
DoorTimerB1Enable();
DoorTimerDelayUnitMs(20);
//DoorTimerDelayUnitMs(10);
//DoorTimerDelayUnitMs(5);
retFlag = DoorIdReadDetect();
if(retFlag == 1)
{
SetPowModeChangeFlag(1);
}
*/
END_OK:
if(GetPowModeChangeFlag() == 1)
{
DoorRfPowEnable();//id card 電源開啟
}
DoorIicDeInit();
DRV_OdGpio_IeSet(1<<0, 0);//這個地方非常重要,否則非常耗電
DRV_OdGpio_IeSet(1<<1, 0);
DoorRfPowDisable();//id card 電源關閉
SleepDeal();
DRV_OdGpio_IeSet(1<<0, 1);//這個地方非常重要,否則IIC死機
DRV_OdGpio_IeSet(1<<1, 1);
DoorIicInit();
DoorPwmNormalMode();//打開PWM
retFlag = TouchKeyPressChk();//讀iic用來起延時的作用
if(retFlag == 1)
{
SetPowModeChangeFlag(1);//啟動模式切換
goto END_OK;
}
for(i=0; i<100; i++)
{
retFlag = DoorGetRfPwmChkIoStateTest();//檢測ID卡是否有效
if(retFlag == 1)
{
break;
}
}
if(retFlag == 1)
{
SetPowModeChangeFlag(1);//啟動模式切換
}
else
{
DoorPwmLpMode();//關閉PWM
}
/*
DoorTimerB1Enable();
DoorTimerDelayUnitMs(20);
//DoorTimerDelayUnitMs(10);
//DoorTimerDelayUnitMs(5);
retFlag = DoorIdReadDetect();
if(retFlag == 1)
{
SetPowModeChangeFlag(1);
}
*/
END_OK:
if(GetPowModeChangeFlag() == 1)
{
DoorRfPowEnable();//id card 電源開啟
}
總結
以上是生活随笔為你收集整理的AB1601低功耗之IIC和PWM控制注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt之debug和写log文件
- 下一篇: AB1601 PWM注意事项