comparison chipsetsw/layer1/cfile/l1_pwmgr.c @ 133:e6611ca0d054

l1_pwmgr.c: l1s_recover_HWTimers() reconstructed
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Sat, 14 May 2016 17:07:26 +0000
parents c721b9d301b9
children cedb53c5926d
comparison
equal deleted inserted replaced
132:c721b9d301b9 133:e6611ca0d054
1666 //------------------------------------------------- 1666 //-------------------------------------------------
1667 1667
1668 cntlreg = Dtimer1_Get_cntlreg(); 1668 cntlreg = Dtimer1_Get_cntlreg();
1669 if ( (cntlreg & D_TIMER_RUN) == D_TIMER_RUN) 1669 if ( (cntlreg & D_TIMER_RUN) == D_TIMER_RUN)
1670 { 1670 {
1671 cntlreg = cntlreg&0x1F; 1671 #if 0 /* match TCS211 object */
1672 cntlreg = cntlreg&0x1F;
1673 #endif
1672 cntlreg >>= 2; // take PTV 1674 cntlreg >>= 2; // take PTV
1673 cntlreg = 1 << (cntlreg+1); // compute 2^(PTV+1) 1675 cntlreg = 1 << (cntlreg+1); // compute 2^(PTV+1)
1674 // convert sleep duration in HWTimers ticks.... 1676 // convert sleep duration in HWTimers ticks....
1675 duration = (l1s.pw_mgr.sleep_duration * 4.615 - (DELTA_TIME/32.768)) / (cntlreg * 0.0012308); 1677 duration = (l1s.pw_mgr.sleep_duration * 4.615 - (DELTA_TIME/32.768)) / (cntlreg * 0.0012308);
1676 if (duration < 0.0){ 1678 #if 0 /* match TCS211 object */
1677 duration = 0.0; // This needs to be done for all the timers 1679 if (duration < 0.0){
1678 } 1680 duration = 0.0; // This needs to be done for all the timers
1681 }
1682 #endif
1679 timer1 = Dtimer1_ReadValue() - (UWORD16) duration; 1683 timer1 = Dtimer1_ReadValue() - (UWORD16) duration;
1680 1684
1681 Dtimer1_Start(0); 1685 Dtimer1_Start(0);
1682 Dtimer1_WriteValue(timer1); 1686 Dtimer1_WriteValue(timer1);
1683 Dtimer1_Start(1); 1687 Dtimer1_Start(1);
1684 } 1688 }
1685 1689
1686 cntlreg = Dtimer2_Get_cntlreg(); 1690 cntlreg = Dtimer2_Get_cntlreg();
1687 if ( (cntlreg & D_TIMER_RUN) == D_TIMER_RUN) 1691 if ( (cntlreg & D_TIMER_RUN) == D_TIMER_RUN)
1688 { 1692 {
1689 cntlreg = cntlreg&0x1F; 1693 #if 0 /* match TCS211 object */
1694 cntlreg = cntlreg&0x1F;
1695 #endif
1690 cntlreg >>= 2; // take PTV 1696 cntlreg >>= 2; // take PTV
1691 cntlreg = 1 << (cntlreg+1); 1697 cntlreg = 1 << (cntlreg+1);
1692 // convert sleep duration in HWTimers ticks.... 1698 // convert sleep duration in HWTimers ticks....
1693 duration = (l1s.pw_mgr.sleep_duration * 4.615 - (DELTA_TIME/32.768)) / (cntlreg * 0.0012308); 1699 duration = (l1s.pw_mgr.sleep_duration * 4.615 - (DELTA_TIME/32.768)) / (cntlreg * 0.0012308);
1694 if (duration < 0.0){ 1700 #if 0 /* match TCS211 object */
1695 duration = 0.0; // This needs to be done for all the timers 1701 if (duration < 0.0){
1696 } 1702 duration = 0.0; // This needs to be done for all the timers
1703 }
1704 #endif
1697 timer2 = Dtimer2_ReadValue() - (UWORD16) duration; 1705 timer2 = Dtimer2_ReadValue() - (UWORD16) duration;
1698 Dtimer2_Start(0); 1706 Dtimer2_Start(0);
1699 Dtimer2_WriteValue(timer2); 1707 Dtimer2_WriteValue(timer2);
1700 Dtimer2_Start(1); 1708 Dtimer2_Start(1);
1701 } 1709 }