[GreenKeys] Computing The Speed Of CW
hunybuny at eskimo.com
hunybuny at eskimo.com
Wed Aug 12 10:46:01 EDT 2009
Hey Chris;
Chris Elmquist wrote:
> On Tuesday (08/11/2009 at 08:34PM -0700), hunybuny at eskimo.com wrote:
>
>>I've written a program (in C) to take my incoming e-mail and
>>send it over the comm port to a code practice oscillator so I
>>can listen to it in morse code. :-)
>>
>>Works fine at any speed I hard-code it for.
>>
>>Now I want to be able to tell the program to send at a specific
>>speed in WPM but I've found that the speed difference
>>from 35-30-25-20-15-10 WPM is not linear when done using a
>>system clock interrupt. There must be some formula because of all
>>the transceivers that have keyers built in and show you the speed
>>on their LCD.
>>
>>Here is a rough example of the speed -vs- the clock times. The higher
>>speeds may be off because the way I'm finding the clock speed is to
>>key "dits" on my rig's keyer and then changing the interrupt speed on
>>the computer until they match.
>>
>>WPM - Clock time
>>
>>10 - 110000
>>13 - 90000
>>15 - 85000
>>18 - 64000
>>20 - 50000
>>25 - 40000
>>30 - 30000
>>
>>Any ideas?
>
>
> If I understand your question correctly-- you are wondering why 10
> WPM takes 110000 ticks and 20 WPM takes 50000 ticks and not 110000/2
> or 55000... and why 30 WPM is 30000 and not 110000/3 or 36666, etc.
> is that correct?
>
> I think you are seeing the non-linear behavior because something in your
> code is not scalable-- ie, it has a fixed cost for each invocation.
> Typically things like I/O or memory accesses will have a fixed time cost
> and become the real bottleneck in the function-- essentially swamping
> the rest of the code in the function when it is called.
>
> You need to determine what this thing is and compute the # of ticks
> with an algorithm something like,
>
> ticks = WPM * n + m
>
> where m is the fixed time for the non-scalable thing and n is the
> scalable stuff.
>
> Chris N0JCF
Yes - I believe that's it. I need to take the "dits" (~4.8 for 1 WPM)
and multiply that by the desired speed and then multiply (or divide) the
clock by it.
Ralph - thanx for your input, too.
UE,
W6ESE - tony
NNNNZCZC
--
Tony J. Podrasky | MicroSoft error messages written in Haiku:
|
| Out of memory.
| We wish to hold the whole sky,
| But we never will.
More information about the GreenKeys
mailing list