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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/07/06 09:11
Read: times


 
#121783 - I found this on the web.
Responding to: ???'s previous message
/* This is a simple delay based on a busy loop    */
/* with a 22.1184 MHz crystal, the delay lasts    */
/* for approximately 1 ms times the number passed */
/* Of course, it will take longer if there are    */
/* interrupts occuring...                         */

void delay_ms(unsigned char ms) { //real Milli Seconds
        ms;
        _asm
        mov     r0, dpl
00001$: mov     r1, #230
00002$: nop
        nop
        nop
        nop
        nop
        nop
        djnz    r1, 00002$
        djnz    r0, 00001$
        ret
        _endasm;
}


I found this some time ago. I don't remeber the orginal auther but, it has served me will. I used it with SDCC and With Dunfield C. As you can see it inline asm. The only real way to make sure it's accurate. Please note what it says about interrupts.

Hope this helps.

List of 34 messages in thread
TopicAuthorDate
help with c51            01/01/70 00:00      
   Asking the impossible!            01/01/70 00:00      
   killing bad habits from the onset            01/01/70 00:00      
      Delay            01/01/70 00:00      
         Uncommented code is worthless!            01/01/70 00:00      
   No delay            01/01/70 00:00      
      I found this on the web.            01/01/70 00:00      
         Still not \"accurate\"            01/01/70 00:00      
            Sorry aaaaa more Accurate....            01/01/70 00:00      
   but why that weird inconsistency?            01/01/70 00:00      
      why wonder            01/01/70 00:00      
         what's fundamentally wrong on a delay loop?            01/01/70 00:00      
            to keep hacking at fundamentally wrong code serves            01/01/70 00:00      
               argggggggg!!! again.            01/01/70 00:00      
                  HUH?            01/01/70 00:00      
               still does not explain inconsistency            01/01/70 00:00      
                  to Jan            01/01/70 00:00      
               IS it time to put erik out to pasture            01/01/70 00:00      
                  there are many            01/01/70 00:00      
   The best way:            01/01/70 00:00      
   on the subject of timing            01/01/70 00:00      
      The Answer to the OP            01/01/70 00:00      
         Drive-By poster?            01/01/70 00:00      
            Oh how wonderful            01/01/70 00:00      
            Yes Drive-By Poster            01/01/70 00:00      
   char VS int            01/01/70 00:00      
      why do you persist            01/01/70 00:00      
         Learn through your mistakes            01/01/70 00:00      
            yes, I do            01/01/70 00:00      
               inline assembly in C            01/01/70 00:00      
                  sure            01/01/70 00:00      
                  why such figthing ?            01/01/70 00:00      
      write it out            01/01/70 00:00      
      debug            01/01/70 00:00      

Back to Subject List