Im having a timing problem on 3650 and Emulator.
Here's my algo. Im using Microseconds as unit for my timers
* Init iMicroSecCycle to 1000000(microsec)/10
*Create CActive set timer to iMicroSecCycle
* Init Timer iTimer.After(iStatus,iMicroSecCycle);
*On RunL it does some long routines
*Init TTime startTime.HomeTime()
* Do some process here / Draw / Read from file
* Cancel CActive is EOF reached (should be 30 seconds)
*Init TTIme endTime.HomeTime()
*compute TInt nDelta = timeEnd.MicroSecondsFrom(timeStart).Int64().GetTInt();
* nDelta is always less than iMicroSecCycle
* TTimeIntervalMicroSeconds32 tDelta(iMicroSecCycle-nDelta);
* Init Timer iTimer.After(iStatus,tDelta);
* SetActive - will invoke RunL after tDelta lapse
It should only last for 30 seconds but on emulator its 45 seconds and on actual handset its 36 seconds
Is TTime::HomeTime Accurate?
Is RTimer::After Accurate?
Is microseconds unit the base for timer?
Am i doing something wrong?