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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/06/04 13:52
Read: times


 
#82600 - an idea...
Responding to: ???'s previous message
In cases where I need the same routine at int as well as main level, I usually write most of it as a macro to save the bugmaker of "change needed in two places"

I've not tried this, but I wonder if putting the shared function (and the shared function alone) into a file that is #inlcuded with the ISR and main would help?

Making the function static should avoid name clashes - and the ISR and main would have to be in separate files; something like:
shared.c
static void shared_fn( void )
{
   // your code here
}
isr.c
#include shared.c // Creates a *local* function

void isr( void ) interrupt x using y
{
   // your ISR code here

   shared_fn(); // Calls *local* function

   // more ISR code here
}
main.c
#include shared.c // Creates a *local* function

void main( void )
{
   // your main code here

   shared_fn(); // Calls *local* function

   // more main code here
}

Thus both main.c and isr.c have a "local" function called "shared_fn" - they are completely distinct, so no MULTIPLE CALL TO SEGMENT problems, and you avoid risking the Gotchas! of 'C' macros.
Downside is, of course, increased code size.







List of 19 messages in thread
TopicAuthorDate
89s52 function sharing.            01/01/70 00:00      
   Try This            01/01/70 00:00      
      emphasis            01/01/70 00:00      
         an idea...            01/01/70 00:00      
            Andy, I tried it            01/01/70 00:00      
               Jolly good!            01/01/70 00:00      
            Error            01/01/70 00:00      
               You need to work on it            01/01/70 00:00      
   reentrant ?            01/01/70 00:00      
      reentrant            01/01/70 00:00      
   non-reentrant            01/01/70 00:00      
   Wow            01/01/70 00:00      
   varaible sharing?            01/01/70 00:00      
      Variable sharing            01/01/70 00:00      
      Overflow            01/01/70 00:00      
      variables, main and ISR            01/01/70 00:00      
         Globals use more memory            01/01/70 00:00      
      Isn't that a global?            01/01/70 00:00      
         Globals, ISRs, main, & static            01/01/70 00:00      

Back to Subject List