折腾了1小时,第二个问题还没有复现
其实第二个问题更头痛,感觉好像是硬件损坏的样子...............
当然,也可能是第三个问题引起的。
开始乱改:
- void main() //程序开始运行的入口
- {
- sys_init(); //USB功能+IO口初始化
- usb_init(); //usb库初始化
- EUSB = 1;
- Timer0_Init(); //定时器0初始化
- EA = 1; //CPU开放中断,打开总中断。
-
- while( DeviceState != DEVSTATE_CONFIGURED );
- CMP_Init(); //比较器初始化
-
-
-
- if( bUsbOutReady )
- {
- // USB_SendData(UsbOutBuffer,OutNumber);
- usb_OUT_done();
- }
-
-
-
- if( TIM_10MS_Flag==1 ) //如果10ms到了
- {
- TIM_10MS_Flag = 0; //清空标志位
- }
-
-
- EEPROM_read_n(EE_ADDRESS,tmp,2); //读出2字节
- Test_cnt = ((u16)tmp[0] << 8) + tmp[1]; //秒计数
- if(Test_cnt > 55000) Test_cnt = 0; //秒计数范围为0~10000
-
- Test_cntSet();
-
- while(1)
- {
- if((B_1ms) && (LowVolFlag == 0)) //1ms到,低电压时不工作
- {
- B_1ms = 0;
- if(++TimCount_z >= 100) //1秒到这里不是应该1000么?
- {
- TimCount_z = 0; //清1000ms计数
- Test_cnt++; //秒计数+1
- if(Test_cnt > 55000) Test_cnt = 0; //秒计数范围为0~10000
-
- Test_cntSet();
- }
-
- }
- }
- }
复制代码
把原来:if(Test_cnt > 10000) Test_cnt = 0; //秒计数范围
改成:if(Test_cnt > 55000) Test_cnt = 0; //秒计数范围
烧录进去,竟然能够越过1000,但是,马上试了一下掉电存储,结果又不行啦
试多一下,有时候又可以.............晕倒!!!!
|