Conversation
|
Can you please squash your commits into a single commit? Thanks |
|
I think the root problem is an overflow with the calculation of "duration" at https://github.com/pimatic/RFControl/blob/master/RFControl.cpp#L290 duration is an unsigned int (16bit) value while currentTime (and lastTime) hold 32 bit values. This will overflow in particular in the first cycle when lastTime is 0, but it will also overflow at longer intervals ... 65536 microsecs * 4 = if the interval is longer than 200 ms roughly. Another thing to consider is timer rollover, which happens roughly every 50 days if I calculated it correctly. http://playground.arduino.cc/Code/TimingRollover |
|
@kirill9617 Nice catch. As @mwittig mentioned: I think the pull request does not fix the problem itself. We should check that the result of |
I had noise with pulse duration greater than signed int and this patch fixes my problem.