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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/13/08 02:01
Read: times


 
#152201 - Not right
Responding to: ???'s previous message
(float)SR = ((S1 + S2)/0x02); // wrong
SR = (float)((S1 + S2)/0x02); // do math then convert to a float
SR = (((float)S1 + (float)S2)/0x02); // do math as float

SR should be a 16 or 32 bit number. On an 8052 float is big and slow. Plus you get float rounding errors as a bonus. (ie 1 / 3 * 3 may not equal 1).

If you need speed 16 variables may be the answer. Or you can add straight out of the A2D.
S1 to 16 can be 8 bit but to get 16 bit addition you must cast

unsigned int SR;
unsigned int S1,S2;

SR = (unsigned int)S1 + S2;

someone will correct me if I am wrong, but I think you only need to cast one of them

List of 26 messages in thread
TopicAuthorDate
Math not functioning with proper headers?            01/01/70 00:00      
   horrible method            01/01/70 00:00      
   Lots of issues            01/01/70 00:00      
      Code Op at level 8            01/01/70 00:00      
         Try multiple steps            01/01/70 00:00      
            ah hah moment arrived......omg            01/01/70 00:00      
                           01/01/70 00:00      
                  Here is the block which now works 100%            01/01/70 00:00      
                     Operation question in C            01/01/70 00:00      
                        Because            01/01/70 00:00      
                     Simplify            01/01/70 00:00      
                        what's the point ?            01/01/70 00:00      
                           What's the point            01/01/70 00:00      
                              simpler, but            01/01/70 00:00      
               Not right            01/01/70 00:00      
   use shift right instead of divide            01/01/70 00:00      
      If you're lucky...            01/01/70 00:00      
   Use a rount trip buffer            01/01/70 00:00      
      Bad names            01/01/70 00:00      
         System use names ????            01/01/70 00:00      
         Common naming convention ?            01/01/70 00:00      
            ISO/IEC 9899:1990...            01/01/70 00:00      
      Comments            01/01/70 00:00      
         same effect as a "circular array"            01/01/70 00:00      
         think I like this the best            01/01/70 00:00      
   Use a loop with deglitching and averaging            01/01/70 00:00      

Back to Subject List