[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