The interrupt jump table is defined in chip.h. Thisjump table must be defined in accordance withthe documentation for the ByteCraft C-compiler.See section 10.3.10 in the ByteCraft C-compilermanual for more information about assigninginterrupt vectors.
Interrupt Handlers
void MY_RESET_ISR(void) - This functioninitializes the data stack pointer, clears ram,initializes port I/O, enables the 1.024 millisecondinterrupt, and jumps to main loop.
void USB_BUS_RESET_ISR(void) - The resetvector initializes the data stack pointer andprogram stack pointer, clears ram, makes a callto initialize system variables, and resets the USBaddress.
void MICROSECONDx128_ISR(void) - This ISRsamples the mouse optics and places the samplein a queue for later processing by the main loop.This is done to minimize the execution time ofthis ISR, which can interrupted during the timePS/2 bits are being clocked to the host. Thetiming of the PS/2 clocking is critical (20 us
margin), so the corresponding execution time ofthis ISR must be kept to less than 20 us.void MILISECOND_ISR(void) - This ISR
maintains the 1 millisecond counter variable, andsets a flag indicating a 1.024 millisecond interrupthas occurred. The main loop uses thesevariables for timing purposes.
void USB_A_EP0_ISR(void) - This ISR is enteredupon receiving an endpoint 0 interrupt. Endpoint0 interrupts occur during the Setup, data , andstatus phases of a control-read transaction. ThisISR handler dispatches the proper routine tohandle one of these phases. The interrupt willremain active until the phase of the transaction iscomplete.
void USB_A_EP1_ISR(void) - This ISR is enteredupon receiving an endpoint 1 interrupt. If theACK bit is sent, indicating that a valid mouse
packet was just transmitted to the host, the SIE isset to NAK ins, and the data toggle bit is flippedfor the next transaction.
void WAKEUP_ISR(void) - The wakeup ISRincrements a global counter which is used to