Subversion Repositories freemyipod

Rev

Rev 252 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 252 Rev 258
Line 91... Line 91...
91
    if (TBCON & 0x00038000) timervector[1]();
91
    if (TBCON & 0x00038000) timervector[1]();
92
    if (TCCON & 0x00038000) timervector[2]();
92
    if (TCCON & 0x00038000) timervector[2]();
93
    if (TDCON & 0x00038000) timervector[3]();
93
    if (TDCON & 0x00038000) timervector[3]();
94
}
94
}
95
 
95
 
96
static void (* const dmavector[])(void) IDATA_ATTR =
96
static void (* dmavector[])(void) IDATA_ATTR =
97
{
97
{
98
    INT_DMA0,INT_DMA1,INT_DMA2,INT_DMA3,INT_DMA4,INT_DMA5,INT_DMA6,INT_DMA7,INT_DMA8
98
    INT_DMA0,INT_DMA1,INT_DMA2,INT_DMA3,INT_DMA4,INT_DMA5,INT_DMA6,INT_DMA7,INT_DMA8
99
};
99
};
100
 
100
 
101
void INT_DMA(void) ICODE_ATTR;
101
void INT_DMA(void) ICODE_ATTR;
Line 146... Line 146...
146
{
146
{
147
    if (handler) timervector[timer] = handler;
147
    if (handler) timervector[timer] = handler;
148
    else timervector[timer] = unhandled_irq;
148
    else timervector[timer] = unhandled_irq;
149
}
149
}
150
 
150
 
-
 
151
void int_dma_set_handler(int channel, void* handler)
-
 
152
{
-
 
153
    if (handler) dmavector[channel] = handler;
-
 
154
    else dmavector[channel] = unhandled_irq;
-
 
155
}
-
 
156
 
151
void interrupt_init(void)
157
void interrupt_init(void)
152
{
158
{
153
    INTMSK = (1 << IRQ_TIMER) | (1 << IRQ_DMA);
159
    INTMSK = (1 << IRQ_TIMER) | (1 << IRQ_DMA);
154
}
160
}
155
 
161