| Stefan Kanev 09/16/11 23:34 Modified: 09/17/11 00:08 Read: 328 times Silistra Bulgaria |
#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. 1/(2*F)=(65536-TH1TL1)*tick. 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. good luck |
| Topic | Author | Date |
| 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 |



