| Index: emcore/trunk/target/ipodnano2g/s5l8701.h |
| — | — | @@ -248,6 +248,7 @@ |
| 249 | 249 | |
| 250 | 250 | |
| 251 | 251 | /////TIMER///// |
| | 252 | +#define TCON(x) (*((uint32_t volatile*)(0x3C700000 + 0x20 * (x)))) |
| 252 | 253 | #define TACON (*((uint32_t volatile*)(0x3C700000))) |
| 253 | 254 | #define TACMD (*((uint32_t volatile*)(0x3C700004))) |
| 254 | 255 | #define TADATA0 (*((uint32_t volatile*)(0x3C700008))) |
| Index: emcore/trunk/target/ipodnano2g/interrupt.c |
| — | — | @@ -87,10 +87,12 @@ |
| 88 | 88 | void INT_TIMER(void) ICODE_ATTR;
|
| 89 | 89 | void INT_TIMER()
|
| 90 | 90 | {
|
| 91 | | - if (TACON & (TACON >> 4) & 0x7000) timervector[0]();
|
| 92 | | - if (TBCON & (TBCON >> 4) & 0x7000) timervector[1]();
|
| 93 | | - if (TCCON & (TCCON >> 4) & 0x7000) timervector[2]();
|
| 94 | | - if (TDCON & (TDCON >> 4) & 0x7000) timervector[3]();
|
| | 91 | + int i;
|
| | 92 | + for (i = 0; i < ARRAYLEN(timervector); i++)
|
| | 93 | + {
|
| | 94 | + int tcon = TCON(i);
|
| | 95 | + if (tcon & (tcon >> 4) & 0x7000) timervector[i]();
|
| | 96 | + }
|
| 95 | 97 | }
|
| 96 | 98 |
|
| 97 | 99 | static void (* dmavector[])(void) IDATA_ATTR =
|
| Index: emcore/trunk/target/ipodnano3g/s5l8702.h |
| — | — | @@ -37,6 +37,7 @@ |
| 38 | 38 | |
| 39 | 39 | |
| 40 | 40 | /////TIMER///// |
| | 41 | +#define TCON(x) (*((uint32_t volatile*)(0x3C700000 + 0x20 * (x)))) |
| 41 | 42 | #define TACON (*((uint32_t volatile*)(0x3C700000))) |
| 42 | 43 | #define TACMD (*((uint32_t volatile*)(0x3C700004))) |
| 43 | 44 | #define TADATA0 (*((uint32_t volatile*)(0x3C700008))) |
| Index: emcore/trunk/target/ipodnano3g/interrupt.c |
| — | — | @@ -132,13 +132,12 @@ |
| 133 | 133 | void INT_TIMER(void) ICODE_ATTR;
|
| 134 | 134 | void INT_TIMER()
|
| 135 | 135 | {
|
| 136 | | - if (TACON & (TACON >> 4) & 0x7000) timervector[0]();
|
| 137 | | - if (TBCON & (TBCON >> 4) & 0x7000) timervector[1]();
|
| 138 | | - if (TCCON & (TCCON >> 4) & 0x7000) timervector[2]();
|
| 139 | | - if (TDCON & (TDCON >> 4) & 0x7000) timervector[3]();
|
| 140 | | - if (TFCON & (TFCON >> 4) & 0x7000) timervector[5]();
|
| 141 | | - if (TGCON & (TGCON >> 4) & 0x7000) timervector[6]();
|
| 142 | | - if (THCON & (THCON >> 4) & 0x7000) timervector[7]();
|
| | 136 | + int i;
|
| | 137 | + for (i = 0; i < ARRAYLEN(timervector); i++)
|
| | 138 | + {
|
| | 139 | + int tcon = TCON(i);
|
| | 140 | + if (tcon & (tcon >> 4) & 0x7000) timervector[i]();
|
| | 141 | + }
|
| 143 | 142 | }
|
| 144 | 143 |
|
| 145 | 144 | static void (* dmavector[])(void) IDATA_ATTR =
|
| Index: emcore/trunk/target/ipodnano4g/s5l8720.h |
| — | — | @@ -37,6 +37,7 @@ |
| 38 | 38 |
|
| 39 | 39 |
|
| 40 | 40 | /////TIMER/////
|
| | 41 | +#define TCON(x) (*((uint32_t volatile*)(0x3C700000 + 0x20 * (x))))
|
| 41 | 42 | #define TACON (*((uint32_t volatile*)(0x3C700000)))
|
| 42 | 43 | #define TACMD (*((uint32_t volatile*)(0x3C700004)))
|
| 43 | 44 | #define TADATA0 (*((uint32_t volatile*)(0x3C700008)))
|
| Index: emcore/trunk/target/ipodnano4g/interrupt.c |
| — | — | @@ -132,13 +132,12 @@ |
| 133 | 133 | void INT_TIMER(void) ICODE_ATTR;
|
| 134 | 134 | void INT_TIMER()
|
| 135 | 135 | {
|
| 136 | | - if (TACON & (TACON >> 4) & 0x7000) timervector[0]();
|
| 137 | | - if (TBCON & (TBCON >> 4) & 0x7000) timervector[1]();
|
| 138 | | - if (TCCON & (TCCON >> 4) & 0x7000) timervector[2]();
|
| 139 | | - if (TDCON & (TDCON >> 4) & 0x7000) timervector[3]();
|
| 140 | | - if (TFCON & (TFCON >> 4) & 0x7000) timervector[5]();
|
| 141 | | - if (TGCON & (TGCON >> 4) & 0x7000) timervector[6]();
|
| 142 | | - if (THCON & (THCON >> 4) & 0x7000) timervector[7]();
|
| | 136 | + int i;
|
| | 137 | + for (i = 0; i < ARRAYLEN(timervector); i++)
|
| | 138 | + {
|
| | 139 | + int tcon = TCON(i);
|
| | 140 | + if (tcon & (tcon >> 4) & 0x7000) timervector[i]();
|
| | 141 | + }
|
| 143 | 142 | }
|
| 144 | 143 |
|
| 145 | 144 | static void (* dmavector[])(void) IDATA_ATTR =
|