| ??? 03/24/03 09:26 Read: times |
#42154 - RE: Delay Generator Responding to: ???'s previous message |
I think, there is no need to do such big circumstances.
Simple let the assembler do all what you want. Following a delay macro for every delay of 0 ... 65535 cycle using the free metalink or the Keil A51: <pre> mdelay macro value, rx, ry ;cycle, used registers (r0..r7 allowed) if( value < 5 ) if( value > 3 ) nop endif if( value > 2 ) nop endif if( value > 1 ) nop endif if( value > 0 ) nop endif else if( value < 515 ) mov rx, #low((value-1)/2) djnz rx, $ if((value and 1) = 0) nop endif else mov rx, #high(value/2+253) mov ry, #low(value/2-2) djnz ry, $ djnz rx, $ - 2 if(value and 1) nop endif endif endif endm mdelay 0, r0, r1 mdelay 1, r0, r1 mdelay 2, r0, r1 mdelay 3, r0, r1 mdelay 4, r0, r1 mdelay 5, r0, r1 mdelay 6, r0, r1 mdelay 100, r0, r1 mdelay 10000, r0, r1 mdelay 65535, r6, r7 end Peter |
| Topic | Author | Date |
| Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 | |
RE: Delay Generator | 01/01/70 00:00 | |
| RE: Delay Generator- Chris | 01/01/70 00:00 | |
| RE: Delay Generator | 01/01/70 00:00 |



