I tried Michael's patch. I does prevent the very fast callbacks RATE=60, but it slows down the callbacks at all rates.
This is what I now see with RATE=59 when I count for 0.2 seconds. updateCounts: posting scaler values counts[0]=72 updateCounts: posting scaler values counts[0]=210254 updateCounts: posting scaler values counts[0]=543797 updateCounts: posting scaler values counts[0]=876856 updateCounts: posting scaler values counts[0]=1210206 updateCounts: posting scaler values counts[0]=1543730 updateCounts: posting scaler values counts[0]=1876830 updateCounts: posting scaler values counts[0]=2000000
The average delta of the first 7 readings is (1876830-72)/6.=312793. So the average callback interval is 31.2 ms, while it should be 1/59 = 16.9 ms.
At RATE=60 I see updateCounts: posting scaler values counts[0]=73 updateCounts: posting scaler values counts[0]=255761 updateCounts: posting scaler values counts[0]=588997 updateCounts: posting scaler values counts[0]=922397 updateCounts: posting scaler values counts[0]=1255750 updateCounts: posting scaler values counts[0]=1589057 updateCounts: posting scaler values counts[0]=1922543 updateCounts: posting scaler values counts[0]=2000000
So the average callback interval is (1922543-73)/6. = 32.04 ms, while it should be 16.67 ms.
I tried Michael's patch. I does prevent the very fast callbacks RATE=60, but it slows down the callbacks at all rates.
This is what I now see with RATE=59 when I count for 0.2 seconds.
updateCounts: posting scaler values counts[0]=72
updateCounts: posting scaler values counts[0]=210254
updateCounts: posting scaler values counts[0]=543797
updateCounts: posting scaler values counts[0]=876856
updateCounts: posting scaler values counts[0]=1210206
updateCounts: posting scaler values counts[0]=1543730
updateCounts: posting scaler values counts[0]=1876830
updateCounts: posting scaler values counts[0]=2000000
The average delta of the first 7 readings is (1876830- 72)/6.= 312793. So the average callback interval is 31.2 ms, while it should be 1/59 = 16.9 ms.
At RATE=60 I see
updateCounts: posting scaler values counts[0]=73
updateCounts: posting scaler values counts[0]=255761
updateCounts: posting scaler values counts[0]=588997
updateCounts: posting scaler values counts[0]=922397
updateCounts: posting scaler values counts[0]=1255750
updateCounts: posting scaler values counts[0]=1589057
updateCounts: posting scaler values counts[0]=1922543
updateCounts: posting scaler values counts[0]=2000000
So the average callback interval is (1922543-73)/6. = 32.04 ms, while it should be 16.67 ms.