开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2020-07-19
详细说明:完整源代码:
int main(void)
{
//while(1);//
InitAllUserRam();
SysTick_Config(12000);
TimeBaseInit();
InitOther();
IOinit();
IICMnit();
ADC_init();
wdt_init(1);
#if TYPEC_DAC_CTRL
DAC_Init();
#endif//TYPEC_DAC_CTRL
// UART_Init(UART0,208);
// DelayMCUtimer(10);
// printf("reset=%d\t\n",TYPEC.State);
DelayMCUtimer(10);
setsrcpower(TYPEC_OUT_PD_MAX_WATT);
changesrcpdo();
CC_Rule_Cfg(ROLE_UFP);
USBAGetOffset();
while(1)
{
clr_wdt(70000);
switch(MainRun.State)
{
case STATEMAINRUN_RESET:
SleepPrePutOnDevice();
MainRun.Timer = 0;
POWER.ADCen = 1;
MainRun.State = STATEMAINRUN_INIT;
break;
case STATEMAINRUN_INIT:
//if(TimeOut(&MainRun.Timer, 30) == 1)
{
MainRun.Timer = 0;
MainRun.State = STATEMAINRUN_LOOP;
}
break;
case STATEMAINRUN_LOOP:
KEY.Flag = KeyCheck(u8KeyData);
Timer0EventHandler();
ADCEventHandler();
if(TRUE == CheckDpdm3Mode())//某些快充时序高,要减少其他模块的消耗。
ContractLoop(); //PD协议
I2CreadAndWriteCtrl();
LowBatCtrl();
TYPECctrl();
MICROctrl();
USBA1ctrl();
USBA2ctrl();
DPDM12_ctrl();
ChargeCtrl();
DischargeCtrl();
CapacityCtrl();
NTCctrl();
DisplayCtrl();
OtherFuncCtrl();
//TestAndDebug();
if(StateKeepONtime(((1)
//&&(1 == u8KeyData)
&&(!Charge.Flag)
&&(!Discharge.Flag)
//&&(!Display.Mode)
), &MainRun.Timer, 3000))
{
POWER.ADCen = 0;
IICwrite.WriteAllTrig = 1;
MainRun.State = STATEMAINRUN_SLEEP_READY;
}
break;
case STATEMAINRUN_SLEEP_READY:
I2CreadAndWriteCtrl();
if(TimeOut(&MainRun.Timer, 50))
{
MainRun.Timer = 0;
MainRun.State = STATEMAINRUN_SLEEP_READY1;
}
break;
case STATEMAINRUN_SLEEP_READY1:
if(TimeOut(&MainRun.Timer, 10))
{
MainRun.Timer = 0;
MainRun.State = STATEMAINRUN_SLEEP;
}
break;
case STATEMAINRUN_SLEEP:
SleepPrePutOffDevice();
MainRun.State = STATEMAINRUN_RESET;
bre
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.