Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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


List of 12 messages in thread
TopicAuthorDate
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      

Back to Subject List