所有,我在电池应用中使用这个部分。我能够进入深度睡眠没有问题,似乎醒来在一个国际过渡。电流从大约25uA到3.7Ma。但是正常的功能没有恢复。当在调试模式下检查DSCON寄存器时,该部件忽略指令以清除释放位。我怀疑这是正常手术无法恢复的原因。显示被置乱,中断被忽略。该部分将再次进入深度睡眠,并再次从该模式返回到一个It0事件。所附的是在part.void main(void){//Ini
tialize system//.外围设备中运行的代码——启用那些在各自的init函数中使用的外围设备#if 1 PMD1=0xFFFFFF;PMD2=0xFFFFFFFF;PMD3=0xFFFFFFFFFF;PMD4=0xFFFFFF;PMD5=0xFFFFFF;PMD6=0xFFFFFFFF;PMD7=0xFFFFFF;#endif(RCONbits.D.PSLP){//从睡眠命令RCONbits.DPSLP=CLEAR;//在深度睡眠后重启IFS0bits.INT0IF=CLEAR;//清除IRQ标志DSWAKE=0;DSCON=0;//DSWAKE bits.DSINT0=CLEAR;//唤醒源//DSCON bits.RELEASE=CLEAR;//释放要由它们的TRIS/LAT位控制的IO端口}否则{InitRTCC();//初始化RTCC-从LPRC}InitDisplay()运行;//初始化显示InitADC();InitTimer1();//初始化定时器DataEEInit();//初始化EEPROM InitISR();//初始化中断InitUSART1();//初始化USART//配置端口位TRISFbits.TRISF7=OUTPUT;/初始化/1.8V功率控制输出ADCPWRCONTROL=SET;TRISEbits.TRISE4=OUTPUT;//心跳输出引脚HEARTBEAT=CLEAR;TRISGbits.TRISG15=INPUT;//开关计数输入引脚ANSGbits.ANSG15=CLEAR;SaveData=CLEAR;SleepFlag=CLEAR;SleepFlag=CLEAR;WwriteDisplay(StrokeCount);YTDStrokes=((无符号长int)DataEERead(YTDSTRTROKEHI))