Line 1... |
Line 1... |
/*!
|
/*!
|
ZTEX Firmware Kit for EZ-USB Microcontrollers
|
ZTEX Firmware Kit for EZ-USB FX2 Microcontrollers
|
Copyright (C) 2009-2010 ZTEX e.K.
|
Copyright (C) 2009-2011 ZTEX GmbH.
|
http://www.ztex.de
|
http://www.ztex.de
|
|
|
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
it under the terms of the GNU General Public License version 3 as
|
it under the terms of the GNU General Public License version 3 as
|
published by the Free Software Foundation.
|
published by the Free Software Foundation.
|
Line 21... |
Line 21... |
*/
|
*/
|
|
|
#ifndef[ZTEX_ISR_H]
|
#ifndef[ZTEX_ISR_H]
|
#define[ZTEX_ISR_H]
|
#define[ZTEX_ISR_H]
|
|
|
xdata BYTE ep0_prev_setup_request = 0xff;
|
__xdata BYTE ep0_prev_setup_request = 0xff;
|
xdata BYTE ep0_vendor_cmd_setup = 0;
|
__xdata BYTE ep0_vendor_cmd_setup = 0;
|
|
|
xdata WORD ISOFRAME_COUNTER[4] = {0, 0, 0, 0}; // counters for iso frames automatically reset by sync frame request
|
__xdata WORD ISOFRAME_COUNTER[4] = {0, 0, 0, 0}; // counters for iso frames automatically reset by sync frame request
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** toggleData ****************************************************
|
***** toggleData ****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
static void resetToggleData () {
|
static void resetToggleData () {
|
Line 108... |
Line 108... |
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** SUDAV_ISR *****************************************************
|
***** SUDAV_ISR *****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
static void SUDAV_ISR () interrupt
|
static void SUDAV_ISR () __interrupt
|
{
|
{
|
BYTE a;
|
BYTE a;
|
ep0_prev_setup_request = bRequest;
|
ep0_prev_setup_request = bRequest;
|
SUDPTRCTL = 1;
|
SUDPTRCTL = 1;
|
|
|
Line 320... |
Line 320... |
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** SOF_ISR *******************************************************
|
***** SOF_ISR *******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void SOF_ISR() interrupt
|
void SOF_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
USBIRQ = bmBIT1;
|
USBIRQ = bmBIT1;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** SUTOK_ISR *****************************************************
|
***** SUTOK_ISR *****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void SUTOK_ISR() interrupt
|
void SUTOK_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
USBIRQ = bmBIT2;
|
USBIRQ = bmBIT2;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** SUSP_ISR ******************************************************
|
***** SUSP_ISR ******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void SUSP_ISR() interrupt
|
void SUSP_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
USBIRQ = bmBIT3;
|
USBIRQ = bmBIT3;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** URES_ISR ******************************************************
|
***** URES_ISR ******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void URES_ISR() interrupt
|
void URES_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
USBIRQ = bmBIT4;
|
USBIRQ = bmBIT4;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** HSGRANT_ISR ***************************************************
|
***** HSGRANT_ISR ***************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void HSGRANT_ISR() interrupt
|
void HSGRANT_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
USBIRQ = bmBIT5;
|
USBIRQ = bmBIT5;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP0ACK_ISR ****************************************************
|
***** EP0ACK_ISR ****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP0ACK_ISR() interrupt
|
void EP0ACK_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4; // clear USB interrupt flag
|
EXIF &= ~bmBIT4; // clear USB interrupt flag
|
USBIRQ = bmBIT6; // clear EP0ACK IRQ
|
USBIRQ = bmBIT6; // clear EP0ACK IRQ
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP0IN_ISR *****************************************************
|
***** EP0IN_ISR *****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
static void EP0IN_ISR () interrupt
|
static void EP0IN_ISR () __interrupt
|
{
|
{
|
EUSB = 0; // block all USB interrupts
|
EUSB = 0; // block all USB interrupts
|
ep0_payload_update();
|
ep0_payload_update();
|
switch ( ep0_prev_setup_request ) {
|
switch ( ep0_prev_setup_request ) {
|
EP0_VENDOR_REQUESTS_DAT;
|
EP0_VENDOR_REQUESTS_DAT;
|
Line 392... |
Line 392... |
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP0OUT_ISR ****************************************************
|
***** EP0OUT_ISR ****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
static void EP0OUT_ISR () interrupt
|
static void EP0OUT_ISR () __interrupt
|
{
|
{
|
EUSB = 0; // block all USB interrupts
|
EUSB = 0; // block all USB interrupts
|
if ( ep0_vendor_cmd_setup ) {
|
if ( ep0_vendor_cmd_setup ) {
|
ep0_vendor_cmd_setup = 0;
|
ep0_vendor_cmd_setup = 0;
|
ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
|
ep0_payload_remaining = (SETUPDAT[7] << 8) | SETUPDAT[6];
|
Line 421... |
Line 421... |
|
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP1IN_ISR *****************************************************
|
***** EP1IN_ISR *****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP1IN_ISR() interrupt
|
void EP1IN_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
EPIRQ = bmBIT2;
|
EPIRQ = bmBIT2;
|
|
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP1OUT_ISR ****************************************************
|
***** EP1OUT_ISR ****************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP1OUT_ISR() interrupt
|
void EP1OUT_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
EPIRQ = bmBIT3;
|
EPIRQ = bmBIT3;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP2_ISR *******************************************************
|
***** EP2_ISR *******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP2_ISR() interrupt
|
void EP2_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
EPIRQ = bmBIT4;
|
EPIRQ = bmBIT4;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP4_ISR *******************************************************
|
***** EP4_ISR *******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP4_ISR() interrupt
|
void EP4_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
EPIRQ = bmBIT5;
|
EPIRQ = bmBIT5;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP6_ISR *******************************************************
|
***** EP6_ISR *******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP6_ISR() interrupt
|
void EP6_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
EPIRQ = bmBIT6;
|
EPIRQ = bmBIT6;
|
}
|
}
|
|
|
/* *********************************************************************
|
/* *********************************************************************
|
***** EP8_ISR *******************************************************
|
***** EP8_ISR *******************************************************
|
********************************************************************* */
|
********************************************************************* */
|
void EP8_ISR() interrupt
|
void EP8_ISR() __interrupt
|
{
|
{
|
EXIF &= ~bmBIT4;
|
EXIF &= ~bmBIT4;
|
EPIRQ = bmBIT7;
|
EPIRQ = bmBIT7;
|
}
|
}
|
|
|