Hi Joep,
Sorry to say, but the accuracy of your commit is far worse on a
PIC18f14k50 (48MHz), the old code was pretty good, but the new 10us is
far off.
Did make a small improvement in order to use frequencies above 40MHz
(see results at bottom of the post)
procedure report_delay( word in setpoint, word in interval) is
if (interval > 32768) then
interval = 0 - interval
end if
; calculate tick time in 100ns steps
var dword tick = target_clock
tick = 4000_000_000 / tick
case ((t1con & 0x30) / 0x10) of
1 : block
tick = tick * 2
end block
2 : block
tick = tick * 4
end block
3 : block
tick = tick * 8
end block
end case
print_string(serial_hw_data, m1)
print_dword_dec(serial_hw_data, setpoint)
print_string(serial_hw_data, m2)
print_word_dec(serial_hw_data, (interval * tick) / 1000)
serial_hw_data = "."
print_word_dec(serial_hw_data, (interval * tick) % 1000)
I multiplied to tick by 100.
Furthermore, why are you not using the default serial library? Anyway
I like the dutch foo-bar (aap,noot mies) in the code, I also use quite
often ;)
Albert
Old code
Target clock: 48000000 ----------------------------
Test us delays
Test 0 us, measured 0.0 us
Test 1 us, measured 0.996 us
Test 2 us, measured 1.992 us
Test 5 us, measured 4.980 us
Test 9 us, measured 8.964 us
Test 10us delays
Test 10 us, measured 8.383 us
Test 20 us, measured 17.762 us
Test 50 us, measured 45.484 us
Test 100 us, measured 87.814 us
Test 200 us, measured 172.474 us
Test 500 us, measured 426.454 us
Test 1000 us, measured 849.754 us
Test 2000 us, measured 1696.354 us
Test 1ms delays
Test 1000 us, measured 992.680 us
Test 2000 us, measured 1984.32 us
Test 5000 us, measured 4958.752 us
Test 10000 us, measured 9916.176 us
Test 20000 us, measured 19831.688 us
New Code
Test 0 us, measured 0.0 us
Test 1 us, measured 0.996 us
Test 2 us, measured 1.992 us
Test 5 us, measured 4.980 us
Test 9 us, measured 8.964 us
Test 10us delays
Test 10 us, measured 10.126 us
Test 20 us, measured 12.367 us
Test 50 us, measured 16.849 us
Test 100 us, measured 24.319 us
Test 200 us, measured 39.259 us
Test 500 us, measured 84.79 us
Test 1000 us, measured 158.779 us
Test 2000 us, measured 308.179 us
Test 1ms delays
Test 1000 us, measured 997.992 us
Test 2000 us, measured 1993.328 us
Test 5000 us, measured 4981.992 us
Test 10000 us, measured 9961.328 us
Test 20000 us, measured 19921.992 us
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jallib" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jallib?hl=en
-~----------~----~----~----~------~----~------~--~---