Difference between revisions of "BoostC from the Fourm"

From OpenCircuits
Jump to navigation Jump to search
(New page: http://forum.sourceboost.com/index.php?showtopic=3909&pid=14605&mode=threaded&start=#entry14605 Sounds like the classic read modify write issue, when ports externally are being dragged d...)
 
Line 7: Line 7:
 
1) Don't drag down the outputs with excessive load.
 
1) Don't drag down the outputs with excessive load.
 
2) Use a shadow register to hold the data written to the port.
 
2) Use a shadow register to hold the data written to the port.
 +
 +
 +
http://forum.sourceboost.com/index.php?showtopic=3896
 +
 +
Is This Technique Ok?, Implementing an array of function pointers
 +
 +
do not understand well enough to summarize
 +
 +
 +
http://forum.sourceboost.com/index.php?showtopic=3895&pid=14515&mode=threaded&start=#entry14515
 +
 +
You can use the standard C macros for time and date which will generate text strings.
 +
 +
CODE
 +
char time[] = __TIME__;  // "16:38:53"
 +
char date[] = __DATE__;  // "Nov 30 2008"
 +
 +
 +
http://forum.sourceboost.com/index.php?showtopic=3877&pid=14436&mode=threaded&start=#entry14436
 +
 +
I can understand that the isr may interrupt the 'main loop' at any point and hence (global) variables may be in a inderterminate state, but why can't functions be used in both isr and main routines.
 +
 +
Surley the sw stack is used for 'main' and 'interrupt' functions, so local vars so they should be safe while the isr is running??
 +
The software stack (or memory overlay) means that all the memory useage on the "stack" has to be known at the time of linking the program. That makes functions that use the software stack un-interruptible or corruption will occur.
 +
 +
 +
http://forum.sourceboost.com/index.php?showtopic=3871&pid=14426&mode=threaded&start=#entry14426
 +
 +
I am using the BoostC compiler using the MPLAB environment (to be able to use the ICD2) and am doing a project that uses a number of source files (11 or so C files at the moment) to keep it all nice and modular.
 +
 +
However, I can't seem to find any way of doing a 'make' of the project (i.e. only recompile changed source files).
 +
 +
There only seems to be a 'build' that explicitly deletes all object files and then rebuilds the whole lot!
 +
 +
Am I missing something?
 +
No. Thats the only option under MPLAB
 +
 +
Regards
 +
Dave

Revision as of 13:18, 12 January 2009

http://forum.sourceboost.com/index.php?showtopic=3909&pid=14605&mode=threaded&start=#entry14605


Sounds like the classic read modify write issue, when ports externally are being dragged down by whatever is connected to them. Remember that when a port is read on a PIC16 the actually logic level on the pins are read, not the last data written. This is not a problem on PIC18 if you use the LAT register as this actually holds the last data written.

Possible solutions: 1) Don't drag down the outputs with excessive load. 2) Use a shadow register to hold the data written to the port.


http://forum.sourceboost.com/index.php?showtopic=3896

Is This Technique Ok?, Implementing an array of function pointers

do not understand well enough to summarize


http://forum.sourceboost.com/index.php?showtopic=3895&pid=14515&mode=threaded&start=#entry14515

You can use the standard C macros for time and date which will generate text strings.

CODE
char time[] = __TIME__;  // "16:38:53"
char date[] = __DATE__;  // "Nov 30 2008"


http://forum.sourceboost.com/index.php?showtopic=3877&pid=14436&mode=threaded&start=#entry14436

I can understand that the isr may interrupt the 'main loop' at any point and hence (global) variables may be in a inderterminate state, but why can't functions be used in both isr and main routines.

Surley the sw stack is used for 'main' and 'interrupt' functions, so local vars so they should be safe while the isr is running?? The software stack (or memory overlay) means that all the memory useage on the "stack" has to be known at the time of linking the program. That makes functions that use the software stack un-interruptible or corruption will occur.


http://forum.sourceboost.com/index.php?showtopic=3871&pid=14426&mode=threaded&start=#entry14426

I am using the BoostC compiler using the MPLAB environment (to be able to use the ICD2) and am doing a project that uses a number of source files (11 or so C files at the moment) to keep it all nice and modular.

However, I can't seem to find any way of doing a 'make' of the project (i.e. only recompile changed source files).

There only seems to be a 'build' that explicitly deletes all object files and then rebuilds the whole lot!

Am I missing something? No. Thats the only option under MPLAB

Regards Dave