avr-chat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-chat] Any way to friend an interrupt handler?


From: Rick Mann
Subject: Re: [avr-chat] Any way to friend an interrupt handler?
Date: Wed, 20 Feb 2013 13:24:20 -0800

On Feb 20, 2013, at 2:08 , David Brown <address@hidden> wrote:

> Another option that might be usable (depending on how things are split
> within different modules) is to make the ISR just a wrapper for the
> "real" code:
> 
> class x {
>       friend void ::timerInterrupt(void);
> private :
>       int i;
> };
> 
> class x the_x;
> 
> static void timerInterrupt(void) {
>       the_x.i++;
> }
> 
> ISR(TIMER1_OVF_vect) {
>       timerInterrupt();
> }
> 
> 
> With non-negligible optimisations enabled, the static timerInterrupt
> function will be inlined within the ISR function, so there is no extra
> overhead.  (Normally there can be significant overhead if an interrupt
> function calls an external function.)
> 
> Just a thought for another style.

Yeah, that's how I had been doing it, but I wanted to ensure I didn't have the 
overhead in this case, even when no optimizations were used.

-- 
Rick






reply via email to

[Prev in Thread] Current Thread [Next in Thread]