Read: 328 times
|#183782 - "formulae"|
Responding to: Ralph Sac's previous message
Your Timer is running with XTAL/12 .
For every count in timer You have tick=((1/xtal))*12 time spended.
Timer's flag TF is settled when timer over-counts from 0ffffh to 10000h. Most significant bit does not exist in 16 bit timer, so TF is settled when timer changes from 0ffffh to 0000h. You are loading Timer1=TH1TL1==7634h ==35276(dec).
So (65536-TH1TL1)*tick is time between loading timer and settling TF1, in Your program this is semiperiod of output freq.
For F output frequency You have 1/2F seconds semiperiod.
Maximum semiperiod is 65536*tick, in Your case - 0.07 sec. So You need:
- to change crystal (which is not usual practice) OR
- to 'extend' counter's bit in software:
--- usually timer's setup is with thick 1, 10, 20 milliseconds - to be easy remembered and used for calculations in mind. Assume 10 milliseconds -
TH1TL1 should be (65536-9216). Then in some variable THIGHBITS count from 0 to 25 on every TF1 settling. When THIGHBITS becomes 25 - clear this variable and toggle output.
With 555 You can do it easy, but how about 10 microseconds pulse on each 10 minutes? Microcontrollers are fun for hobby.
|Need a little help with frequency||Ralph Sac||09/16/11 21:32|
|use 89c52||Maunik Choksi||09/16/11 23:00|
|"formulae"||Stefan KAnev||09/16/11 23:34|
|How to post legible source code - and text||Andy Neil||09/17/11 10:43|
|Legible source code||Ralph Sac||09/17/11 16:09|
|Not the whole message!||Andy Neil||09/17/11 16:16|
|Thanks Andy got little messed up||Ralph Sac||09/17/11 17:00|
|Already answered||Per Westermark||09/17/11 18:43|
|Still not understanding isr with tick||Ralph Sac||09/23/11 21:33|
|use may use this code||Maunik Choksi||09/23/11 23:19|
|Thanks for time||Ralph Sac||09/24/11 18:43|
|Rewrote Source Code for Metalink Assembler||Ralph Sac||10/20/11 18:36|
|keil assembler||Maunik Choksi||10/20/11 23:25|
|No need for picture||Maunik Choksi||10/21/11 07:36|
|try||Stefan KAnev||09/23/11 23:34|
|the code above is a typical illustration of ...||Erik Malund||09/24/11 07:35|
|You are right||Ralph Sac||09/24/11 18:39|
|never too old||Erik Malund||09/25/11 06:46|
|Never too late to pick up a new trick||Per Westermark||09/25/11 09:10|
|One good trick ...||Richard Erlacher||09/25/11 13:49|
|Score -1||Michael Karas||09/25/11 19:59|
|Learn one before Jumping head||Ralph Sac||09/26/11 21:11|
|Learning Assembler First||Michael Karas||09/27/11 00:41|
|I wholehardely concur.||Erik Malund||09/27/11 08:03|
|Thanks also you for your time||Ralph Sac||09/24/11 18:46|
|Here's something to try ...||Richard Erlacher||09/24/11 14:57|
|One suggession for higher frequency||Maunik Choksi||09/26/11 02:00|
|Remember no fractional part for||Per Westermark||09/26/11 06:02|
|Precise frequency||Mahmood Elnasser||09/26/11 09:00|
|I did not know that||Ralph Sac||09/26/11 21:15|
|89c2051||Stefan KAnev||09/26/11 22:10|
|When you wrote code||Ralph Sac||09/27/11 12:10|
|You normally always need to test - but may not need to debug||Per Westermark||09/27/11 15:20|
|it was example||Stefan KAnev||09/27/11 15:20|
|Ok then if I||Ralph Sac||09/27/11 15:40|
|try||Stefan KAnev||09/27/11 21:54|
|depends||Erik Malund||09/28/11 06:54|
|Testing Code||Michael Karas||09/28/11 07:25|
|In short||Per Westermark||09/28/11 08:41|
|someone said it better||Erik Malund||09/28/11 09:03|
|"Proven Product" Syndrome||Andy Neil||09/29/11 01:24|
|Did you ever look at that MIDE51 I previously mentioned?||Richard Erlacher||10/21/11 01:39|