| ??? 01/04/08 10:07 Read: times |
#149031 - Delay functions Responding to: ???'s previous message |
You might want to give your delay function a more meaningful name that makes the units of the parameter obvious; eg, void Wait_1us ( Uint8 n ); // Wait n+2 us void Wait_10us( Uint8 n ); // Wait 10n us... or whatever. When I did this, for Wait_1us, I couldn't get over the 2us "overhead" in the call, so I created a macro WAIT_1US to handle the offset: #define WAIT_1US( us ) Wait_1us( us-2 )With Wait_10us, there was plenty of slack to take up to allow for the overhead... See: http://www.keil.com/forum/docs/thread2938.asp |
| Topic | Author | Date |
| Number of CPU cycle for 8051 function call | 01/01/70 00:00 | |
| Do it in assembler | 01/01/70 00:00 | |
| Delay functions | 01/01/70 00:00 | |
| A related trick | 01/01/70 00:00 | |
| Offset | 01/01/70 00:00 | |
| Offset | 01/01/70 00:00 | |
| Sure | 01/01/70 00:00 | |
| Over Drive? | 01/01/70 00:00 | |
| a refinement | 01/01/70 00:00 | |
| NOPs are so bad waste of space... | 01/01/70 00:00 | |
| waste of space... waste of time | 01/01/70 00:00 | |
| fixed delay | 01/01/70 00:00 | |
| Variable delay | 01/01/70 00:00 | |
| determinism of the cache | 01/01/70 00:00 | |
| there are no cache misses in 'linear code' | 01/01/70 00:00 | |
| I got only ONE cache miss... | 01/01/70 00:00 | |
| Old Keil Thread | 01/01/70 00:00 | |
| What about a Delay like this. | 01/01/70 00:00 | |
| No, it won't. | 01/01/70 00:00 | |
| Ok. | 01/01/70 00:00 | |
| also | 01/01/70 00:00 | |
| Also ... | 01/01/70 00:00 | |
| Actually... | 01/01/70 00:00 | |
| will. | 01/01/70 00:00 | |
| ANSI C | 01/01/70 00:00 | |
Keil option: Disable ANSI casts | 01/01/70 00:00 | |
| typo. | 01/01/70 00:00 |



