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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
05/07/08 22:56
Read: times


 
#154554 - Unhelpful documentation
Responding to: ???'s previous message
Keil's documentation of the toascii() macro is really rather misleading:
Keil said:
Description: The toascii macro converts c to a 7-bit ASCII (sic) character. This macro clears all but the lower 7 bits of c.
Return Value: The toascii macro returns the 7-bit ASCII (sic) character for c.
http://www.keil.com/support/m...oascii.htm


This macro actually has nothing whatsoever to do with ASCII; it merely ensures that the top bit is clear - without any regard to ASCII or any other character encoding!

  • If the parameter was a valid ASCII code originally, its top bit would not have been set - and so it would be unaffected;

  • If the parameter's top bit was originally set, then simply clearing it does not provide any meaningful "conversion".


    I imagine that both the name of this macro and, in fact, its very existance, are merely a hangover of some historical implementation that happened to use the "spare" bit for something else?
    Maybe (some) UARTs used it to deliver the parity bit...?

  • List of 35 messages in thread
    TopicAuthorDate
    Problem with the toascii() w/ clarification            01/01/70 00:00      
       toascii not what you want            01/01/70 00:00      
          Ah yes.....makes sense            01/01/70 00:00      
             C does know ASCII            01/01/70 00:00      
                the final result:            01/01/70 00:00      
                   That is a LOT of code            01/01/70 00:00      
                      It won't compile in its state because...            01/01/70 00:00      
                   Grossly inefficient!            01/01/70 00:00      
                      A small trick            01/01/70 00:00      
                         small trick is cool.....            01/01/70 00:00      
                            Same as Neil's            01/01/70 00:00      
                               Ah makes sense.....            01/01/70 00:00      
                                  You can still do better            01/01/70 00:00      
                                     LOL....Russ.......LOL            01/01/70 00:00      
                                        sprintf()            01/01/70 00:00      
                                           I had you at <>            01/01/70 00:00      
                                              So why not sprintf()?            01/01/70 00:00      
                                                 You are right......I did say that            01/01/70 00:00      
                            How the small trick works            01/01/70 00:00      
                               Is it worth it?            01/01/70 00:00      
                                  Same assembly generated for me            01/01/70 00:00      
                               You said index.....click click....very nice            01/01/70 00:00      
                                  fast (sic?) lookup table            01/01/70 00:00      
                                     Faster? Probably not.            01/01/70 00:00      
                   What's in a name?            01/01/70 00:00      
                      true.....but at this point.......            01/01/70 00:00      
                         Tricks and treats            01/01/70 00:00      
                         there is no time lost by doing it right            01/01/70 00:00      
                            You guys are completely right,            01/01/70 00:00      
                               the very simple way to (almost) do it right            01/01/70 00:00      
                               For the sake of learning            01/01/70 00:00      
                                  Good point            01/01/70 00:00      
       UART doesn't know ASCII            01/01/70 00:00      
          Good point....but            01/01/70 00:00      
       Unhelpful documentation            01/01/70 00:00      

    Back to Subject List