[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Trouble with division
From: |
Joerg Wunsch |
Subject: |
Re: [avr-gcc-list] Trouble with division |
Date: |
Sat, 14 Jun 2003 20:28:39 +0200 (MET DST) |
In article <address@hidden> you write:
>INTERRUPT(SIG_OVERFLOW0)
That's probably your problem. Make this SIGNAL(SIG_OVERFLOW0).
SIGNAL() is not interruptible, INTERRUPT() is.
>The problem is: The divsion seems to ge wrong when I divide by any number
>that is not a power of 2 (as in the above example). If I change the 33 to
>32 or any other power of 2, the result is just like expected.
Division by a power of 2 is magnitudes faster than division by an
arbitrary number. I guess your timer is running at a fast speed, so
the interrupt handler is interrupted again.
Of course, while SIGNAL() will prevent this from happen, you'll lose
interrupts. Consider using something else than an expensive division,
or run it at a lower tick rate.
--
J"org Wunsch Unix support engineer
address@hidden http://www.interface-systems.de/~j/
- [avr-gcc-list] Trouble with division, Ulrich Schweitzer, 2003/06/14
- Re: [avr-gcc-list] Trouble with division,
Joerg Wunsch <=
- Re: [avr-gcc-list] Trouble with division, Ulrich Schweitzer, 2003/06/15
- Re: [avr-gcc-list] Trouble with division, Joerg Wunsch, 2003/06/15
- Re: [avr-gcc-list] Trouble with division, Ulrich Schweitzer, 2003/06/16
- Re: [avr-gcc-list] Trouble with division, Neil Johnson, 2003/06/16
- Re: [avr-gcc-list] Trouble with division, Joerg Wunsch, 2003/06/17