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/09 15:13
Modified:
  03/10/09 15:14

Read: times


 
#163303 - Bisection.
Responding to: ???'s previous message
Anyone have some advise for a seemly easy problem?<p>

With as little as four comparison operations, you can find out how many bars to light. The process works by dividing the range of bar in half with each comparison, i.e. with the first comparison, you check whether you need to light more than seven bars or not, etc.

This approach is most likely faster than using a divison on a '51, but will result in four levels of nesting, which may or may not agree with your sense of aesthetics. :)

Alternatively, if you want to go the division route:


Bar_Value = (0x0E / (0x8C/SpeedCalculated)); // 140 used for testing



you may want to use a higher precision than 8 bits, at least in the intermediate steps, and apply rounding to minimize the worst case error.

E.g.

#define NUMBER_OF_BARS       14
#define MAXIMUM_SPEED_IN_MPH 140
#define SCALE_EXPONENT       5 

unsigned short tmp;
unsigned char bar_value;

tmp = (unsigned short) NUMBER_OF_BARS * speed_in_mph; /* maximum: 14 * 140 = 1960 */
tmp = (tmp << SCALE_EXPONENT); /* use all 16 availaable bits, maximum: 1960 * 32 = 62720 */
tmp = tmp / MAXIMUM_SPEED_IN_MPH;
tmp = (tmp + (1 << (SCALE_EXPONENT - 1))) >> SCALE_EXPONENT; */ Round /*
bar_value = (unsigned char) tmp;




List of 49 messages in thread
TopicAuthorDate
Tip for Speed sensor via External Interrupt            01/01/70 00:00      
   Fresh thoughts.            01/01/70 00:00      
      Try measuring time instead of count for slow pulse trains            01/01/70 00:00      
         The highest frequency would be            01/01/70 00:00      
            Once more - think time instead of frequency            01/01/70 00:00      
            Rough estimation...            01/01/70 00:00      
         On the teatering edge......            01/01/70 00:00      
            Is that not good enough?            01/01/70 00:00      
               I was having issues with that.....            01/01/70 00:00      
                  Did you read this post?            01/01/70 00:00      
                     I think that's the bullseye, I was forgetting....            01/01/70 00:00      
                     Yes, and your solution is in my code...perfect!            01/01/70 00:00      
                        Happy that it works            01/01/70 00:00      
                           I'm using this model.....at least            01/01/70 00:00      
                           I'm using this model.....at least            01/01/70 00:00      
                           Looks like I was blind to the obvious.            01/01/70 00:00      
                              All depends on the input scale            01/01/70 00:00      
                                 That will be the next step.......            01/01/70 00:00      
                                 Per,            01/01/70 00:00      
                                    Would this work for a Random() Seeding?            01/01/70 00:00      
                                       Thermal noise from a diode            01/01/70 00:00      
                        Bisection.            01/01/70 00:00      
                           I was a bit hasty ...            01/01/70 00:00      
   PLL ?            01/01/70 00:00      
      Stability            01/01/70 00:00      
         Yes, for a car            01/01/70 00:00      
            Are you sure?            01/01/70 00:00      
               your math is correct            01/01/70 00:00      
                  Ok, can you please explain...            01/01/70 00:00      
                     Should be minute not seconds, typo            01/01/70 00:00      
                        Two questions...            01/01/70 00:00      
                           Yes, 3.3V is right and works correctly            01/01/70 00:00      
                              Have you read...            01/01/70 00:00      
                                 In more detail...            01/01/70 00:00      
                                 It would take forever to go through all the combos            01/01/70 00:00      
                                    This is no log function, ...            01/01/70 00:00      
                                       This is my solution, and almost there            01/01/70 00:00      
                              do you read datasheets???            01/01/70 00:00      
                                 Yes/No            01/01/70 00:00      
                                    better perfomance if ...            01/01/70 00:00      
         The PLL approach isn't that hopeless...            01/01/70 00:00      
   period measurement            01/01/70 00:00      
      Here is an image of what I think you mean?            01/01/70 00:00      
         what derivative do you use?            01/01/70 00:00      
            I'm using the NXP LPC936            01/01/70 00:00      
         Your drawing is still in the frequency domain            01/01/70 00:00      
            Yes, you're correct, and I undestand, connecting...            01/01/70 00:00      
            Where I'm at and software recap            01/01/70 00:00      
               more step-by-step            01/01/70 00:00      

Back to Subject List