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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/16/06 12:20
Read: times


 
#128073 - Errr
Responding to: ???'s previous message
Please see the Instruction on how to post legible code:
http://www.8052.com/forum/read.phtml?id=127942

Bernd Nollmeyer said:
convert an integer value to a char using the preprocessor.

As Jez says, this is nothing specifically to do with SDCC.

You already have arithmetic in your preprocessor defines:
#define XTAL 22118400
#define MACHINE_CYCLE 12
#define TMR_OV_SEC XTAL/MACHINE_CYCLE
#define F40TH_OF_SECOND TMR_OV_SEC * 0.025   
#define TIME_SCND 40
#define CLOCK_RELOAD 65536-F40TH_OF_SECOND+14

Not that the preprocessor does not actually do any of this arithmetic - it just substitutes the text.

This is where it becomes compiler-specific: most compilers will evaluate constant expressions at compile-time - you need to check the SDCC Manual to confirm this, and whether it's considered an "optimisation" that needs to be enabled...

So, just make #defines that do the necessary shift-and-mask operations to extract the high & low bytes...


List of 28 messages in thread
TopicAuthorDate
SDCC how to            01/01/70 00:00      
   erm dunno but            01/01/70 00:00      
   Errr            01/01/70 00:00      
   Aside: XTAL            01/01/70 00:00      
   no no            01/01/70 00:00      
      Missing the point            01/01/70 00:00      
   basic C            01/01/70 00:00      
      preprocessor does not do it!            01/01/70 00:00      
         Thanks Andy            01/01/70 00:00      
   Why floating point? On an 8051?            01/01/70 00:00      
   yeah            01/01/70 00:00      
      preprocessor does not do it!            01/01/70 00:00      
   sorry but its still not working            01/01/70 00:00      
      expand and see            01/01/70 00:00      
         Not quite...            01/01/70 00:00      
      Do it by hand!            01/01/70 00:00      
         ... or let the preprocessor do it for you            01/01/70 00:00      
   to make things more clear            01/01/70 00:00      
      Show your expansion!            01/01/70 00:00      
         preprocessor output            01/01/70 00:00      
            what you miss ...            01/01/70 00:00      
               I don't understand your point, but...            01/01/70 00:00      
   finally I found            01/01/70 00:00      
      you are trying to be too good            01/01/70 00:00      
      I'd guess....            01/01/70 00:00      
   wow            01/01/70 00:00      
      I know that, but they are similar enough to ..            01/01/70 00:00      
   one more time            01/01/70 00:00      

Back to Subject List