| ??? 01/04/08 14:58 Read: times |
#149043 - a refinement Responding to: ???'s previous message |
do_fine_delay:
MOV A,R7 ; Get input parameter
clr c
subb a,#xxx ; xxx= overhead cycles
jnc luvverly ; may need to check OV as well ??? just trying to be fast
lcall Crash ; whatever your coding error catcher is called
luvverly:
CPL A ; Take two's compliment
INC A
MOV DPTR,#NOPS ; Point DPTR at the NOP table
JMP @A+DPTR ; Jump into table
That makes it void do_fine_delay(U8 ActualCycles) Erik |
| 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 |



