Hi, I have the following code #define FT_RESOLUTION_NS 240 #define US_2_FT_TICKS(x) (((x) * 1000)/FT_RESOLUTION_NS) values calculated with US_2_FT_TICKS where the x * 1000 bit overflows 16 bits are incorrect. Is there any way round this? If not this must be the first assembler I have ever seen that does not perform 32 bit constant arithmetic, and most of the do floating point as well.
Hi Simon, This should do the trick (1000.L) #define FT_RESOLUTION_NS 240 #define US_2_FT_TICKS(x) (((x) * 1000.L)/FT_RESOLUTION_NS) -Walt
Actually, this should work too. #define US_2_FT_TICKS(x) (((x) * 1000L)/FT_RESOLUTION_NS) -Walt