![](templates/subSilver/images/CCSLogo.jpg) |
![CCS C Software and Maintenance Offers](templates/subSilver/images/forumAd6.jpg) |
View previous topic :: View next topic |
Author |
Message |
Koketso
Joined: 05 May 2011 Posts: 4
|
calculations in ccs |
Posted: Sat Nov 05, 2011 9:44 pm |
|
|
Can anyone help me with guidelines on how to handle values beyond 256, since ccs returns incorrect answers, e.g. 250 +250 = -12. Is there a library I am suppose to include apart from math.h? |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Sat Nov 05, 2011 9:53 pm |
|
|
While you have a project open, press F11, and the CCS onscreen HELP file will come up.Look on the left side, click on 'data definitions' and read the screen info.
I always have the HELP screens open...very,very handy reference to almost everything you need to know about CCS C ! |
|
![](templates/subSilver/images/spacer.gif) |
Koketso
Joined: 05 May 2011 Posts: 4
|
|
Posted: Sat Nov 05, 2011 10:16 pm |
|
|
Tried unsigned long, still getting incorrect values but this time they are different from the ones obtained first. Do I need to do a conversion before I display on a LCD ? |
|
![](templates/subSilver/images/spacer.gif) |
temtronic
Joined: 01 Jul 2010 Posts: 9170 Location: Greensville,Ontario
|
|
Posted: Sat Nov 05, 2011 10:52 pm |
|
|
You'll have to show us your code...but yes, the format of the print function has to be coded for the type of data you want to show, again, look at the onscreen help file, lookup 'printf', it's all there or open up any of the examples CCS kindly supplies to see how it's done. |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19359
|
|
Posted: Sun Nov 06, 2011 4:57 am |
|
|
This is not specific to CCS, though it is slightly 'tighter' in CCS, than in most modern languages.
Basically, in C, _you_ have to ensure that the maths type used, can support all possible values at all times, and then select the output format to suit that type.
Now on most C's on the PC (for example), the 'minimum' type used, is at least an int16, so problems are slightly less common, and on more strongly 'typed' languages, the compiler will complain if you try to print a value with a format that doesn't support it. It is both a power and a weakness of C, allowing you to mix types in a way that such languages don't allow, and (especially on little chips like the PIC), avoid using slower maths forms when not needed, but with these advantages, comes the cost of you needing to think at all times whether the types will support what you want to do.....
Best Wishes |
|
![](templates/subSilver/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|