[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