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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/10/08 11:55
Read: times


 
#152077 - Surprise.
Responding to: ???'s previous message
I would be surprised if you will get a massive difference in cycles on such simple code.

I'm afraid you might be in for that particular surprise. The compiler is free to make the code as optimal or un-optimal as it deems fit. It could unroll the loop, eliminating a lot of the loop overhead altogether. It could be clever and make it a DJNZ loop (it'd have to be very clever, though. In the present form, Keil would not generate a DJNZ loop). It could keep the loop counter somewhere in data memory, or use a register, or perform some weird shuffling between ACC, registers and memory.

And on a 12-clocker with 24 MHz, one instruction cycle corresponds to 0.5 us, which is about 1% of the bit period. You don't need too many of these delays to deviate from the specified baudrate by a significant amount.


List of 32 messages in thread
TopicAuthorDate
One RS232 port and two devices            01/01/70 00:00      
   Almost certainly not!            01/01/70 00:00      
      neither one talks back            01/01/70 00:00      
         Soft-UART ?            01/01/70 00:00      
         Simplex            01/01/70 00:00      
            responses            01/01/70 00:00      
               The beaty of the 8051            01/01/70 00:00      
                  why all this about bit-banging            01/01/70 00:00      
               Bit banging UART TX.            01/01/70 00:00      
                  Easy to get wrong.            01/01/70 00:00      
                     Point taken, but you can calculate delay.            01/01/70 00:00      
                        Depends on compiler/etc...            01/01/70 00:00      
                           Don't use HLL!            01/01/70 00:00      
                              Cycle counting.            01/01/70 00:00      
                                 Fundamental flaw            01/01/70 00:00      
                              Not an Absolute....            01/01/70 00:00      
                                 RE: Never is a strong word            01/01/70 00:00      
                                    ... and            01/01/70 00:00      
                              assembly verses HLL            01/01/70 00:00      
                           Use a Timer IRQ to set the soft baudrate            01/01/70 00:00      
                              Surprise.            01/01/70 00:00      
                                 High risk            01/01/70 00:00      
                                    Straying into fantasy.            01/01/70 00:00      
                                       Not so fantastic?            01/01/70 00:00      
                  Resistance is too high            01/01/70 00:00      
                  Another reason why this is not so easy...            01/01/70 00:00      
               Timescales            01/01/70 00:00      
      message formatting            01/01/70 00:00      
         Try it now            01/01/70 00:00      
            It's OK now, thanks.            01/01/70 00:00      
   Two RS232 devices            01/01/70 00:00      
      the LCD display            01/01/70 00:00      

Back to Subject List