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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
07/25/05 13:07
Modified:
  07/25/05 13:15

Read: times


 
#97994 - Wrong !
Responding to: ???'s previous message
        mov r0, #HIGH ms 
00001$: mov r1, #LOW ms 
00002$: nop 

        nop 
        djnz r1, 00002$ 
        djnz r0, 00001$ 
        ret
Your delay routine will not function well. What if LOW ms is a small number: 1, 2 ... ? You reload R1 with it, so the delay is equally dependent on lower byte as on higher ! The exact routine should look like this:
	MOV	R0,#HIGH
	INC	R0		; In case of HIGH=0, R0 must be 1
;                               to go out from the loop immediately !
	MOV	R1,#LOW
	INC	R1		; Same as up

DLY:	NOP

	DJNZ	R1,DLY
	DJNZ	R0,DLY
This way, the DLY loop will be performed (LOW + HIGH * 256) times. Exactly what we need.

Regards, Slobodan


List of 53 messages in thread
TopicAuthorDate
Pulse Width Modulation Code..giving back            01/01/70 00:00      
   Something else weird            01/01/70 00:00      
      Not Weird            01/01/70 00:00      
         Thanks, good to know.            01/01/70 00:00      
            hexmap, AT89C4051            01/01/70 00:00      
         To be more precise...            01/01/70 00:00      
   Delay ?            01/01/70 00:00      
      Other suggestions?            01/01/70 00:00      
         maybe            01/01/70 00:00      
            Timer ISR Pretty Long            01/01/70 00:00      
               Or simpler ...            01/01/70 00:00      
               not really            01/01/70 00:00      
   Ridicule            01/01/70 00:00      
   this may work!! try out...            01/01/70 00:00      
      Wrong !            01/01/70 00:00      
         my loop for >256 itterations            01/01/70 00:00      
            That's nice, but still ...            01/01/70 00:00      
               no            01/01/70 00:00      
   Using port read backs            01/01/70 00:00      
   Thanks... and some basic timer concepts            01/01/70 00:00      
      some answers            01/01/70 00:00      
         timekeeping            01/01/70 00:00      
            plerase quote everything            01/01/70 00:00      
               bloated ISR?            01/01/70 00:00      
                  This is a nice little bug that show up            01/01/70 00:00      
                     Yes but            01/01/70 00:00      
                        experience... or ....            01/01/70 00:00      
                           What is Erik's 8052 University?            01/01/70 00:00      
                              http://www.8052.com/forum/read.phtml?id=            01/01/70 00:00      
                     well            01/01/70 00:00      
                        Ah but...            01/01/70 00:00      
                        Is that a valid design criteria. Should            01/01/70 00:00      
                     use it later            01/01/70 00:00      
                        based on your post above that includes y            01/01/70 00:00      
                           Try it! (Curious myself) :-)            01/01/70 00:00      
         Still a bit confused            01/01/70 00:00      
            not quite complete            01/01/70 00:00      
               256 cycles            01/01/70 00:00      
                  youn are absolutotally missing the point            01/01/70 00:00      
                     Not a bug at all!            01/01/70 00:00      
                        which will not happen            01/01/70 00:00      
                           who's afraid of the wolf...            01/01/70 00:00      
                              crying wolf once bitten            01/01/70 00:00      
                                 you restriction...            01/01/70 00:00      
                                    Cynicism            01/01/70 00:00      
                                    more widespread among Pascal and C users            01/01/70 00:00      
                              Calculating machine cycles            01/01/70 00:00      
                                 Counting machine cycles            01/01/70 00:00      
                                 Use Keil or JSIM tools            01/01/70 00:00      
                                 the point            01/01/70 00:00      
   PWM with 8051            01/01/70 00:00      
      Some debugging is required            01/01/70 00:00      
NOTICE: Message(s) moved            01/01/70 00:00      

Back to Subject List