📄 defaultisr_nonbios.c
字号:
/**********************************************************************
* File: DefaultIsr_nonBIOS.c
* Devices: TMS320F2812, TMS320F2811, TMS320F2810
* Author: David M. Alter, Texas Instruments Inc.
* History:
* 09/08/03 - original (based on DSP281x header files v1.00, D. Alter)
* 03/23/04 - removed redundant PIE acknowlege from CAP1INT_ISR (D. Alter)
**********************************************************************/
#include "DSP281x_Device.h"
#ifdef EXAMPLE_BIOS
#include "example_BIOS.h"
#endif
#ifdef EXAMPLE_NONBIOS
#include "example_nonBIOS.h"
#endif
#define led *(int *)0xc0000
#define key *(int *)0xc0001
/*** Global variables used by ADCINT_ISR() ***/
#define ADC_buf_len 50 // ADC buffer length
Uint16 ADC_buf[ADC_buf_len]; // ADC buffer allocation
/*** Global variables used by CAPINT1_ISR() ***/
Uint16 CAP_rising = 0; // Captured rising edge timestamp
Uint16 CAP_falling = 0; // Captured falling edge timestamp
Uint16 CAP_width = 0; // PWM pulse width computed using captures
int i;
/*********************************************************************/
interrupt void INT13_ISR(void) // 0x000D1A INT13 - XINT13 (or CPU Timer1, reserved for TI)
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
} // INT13_ISR
/*********************************************************************/
interrupt void INT14_ISR(void) // 0x000D1C INT14 - CPU Timer2, reserved for TI
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void DATALOG_ISR(void) // 0x000D1E DATALOG - CPU data logging interrupt
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void RTOSINT_ISR(void) // 0x000D20 RTOSINT - CPU RTOS interrupt
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void EMUINT_ISR(void) // 0x000D22 EMUINT - CPU emulation interrupt
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void NMI_ISR(void) // 0x000D24 NMI - XNMI interrupt
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void ILLEGAL_ISR(void) // 0x000D26 ILLEGAL - illegal operation trap
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER1_ISR(void) // 0x000D28 USER1 - software interrupt #1
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER2_ISR(void) // 0x000D2A USER2 - software interrupt #2
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER3_ISR(void) // 0x000D2C USER3 - software interrupt #3
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER4_ISR(void) // 0x000D2E USER4 - software interrupt #4
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER5_ISR(void) // 0x000D30 USER5 - software interrupt #5
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER6_ISR(void) // 0x000D32 USER6 - software interrupt #6
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER7_ISR(void) // 0x000D34 USER7 - software interrupt #7
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER8_ISR(void) // 0x000D36 USER8 - software interrupt #8
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER9_ISR(void) // 0x000D38 USER9 - software interrupt #9
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER10_ISR(void) // 0x000D3A USER10 - software interrupt #10
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER11_ISR(void) // 0x000D3C USER11 - software interrupt #11
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void USER12_ISR(void) // 0x000D3E USER12 - software interrupt #12
{
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void PDPINTA_ISR(void) // 0x000D40 PDPINTA (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void PDPINTB_ISR(void) // 0x000D42 PDPINTB (EV-B)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void XINT1_ISR(void) // 0x000D46 XINT1
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void XINT2_ISR(void) // 0x000D48 XINT2
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void ADCINT_ISR(void) // 0x000D4A ADCINT (ADC)
{
static volatile Uint16 GPIOF14_count = 0; // Counter for pin toggle
static Uint16 *ADC_buf_ptr = ADC_buf; // Pointer to buffer
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
/*** Manage the ADC registers ***/
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1 to CONV00 state
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear ADC SEQ1 interrupt flag
/*** Read the ADC result ***/
*ADC_buf_ptr++ = AdcRegs.ADCRESULT0 >> 4; // Read the result
/*** Brute-force the circular buffer ***/
if( ADC_buf_ptr == (ADC_buf + ADC_buf_len) )
ADC_buf_ptr = ADC_buf; // Rewind the pointer to beginning
/*** Example: Toggle GPIOF14, which is connected to the LED on the eZdsp board ***/
if(GPIOF14_count++ > 12500) // Toggle slowly to see the LED blink
{
GpioDataRegs.GPFTOGGLE.bit.GPIOF14 = 1; // Toggle the pin
GPIOF14_count = 0; // Reset the counter
}
} // end ADCINT_ISR()
/*********************************************************************/
interrupt void TINT0_ISR(void) // 0x000D4C TINT0 (CPU TIMER 0)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
//while(1);
i=key;
i=i&0xff;
led=i;
}
/*********************************************************************/
interrupt void WAKEINT_ISR(void) // 0x000D4E WAKEINT (LPM/WD)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void CMP1INT_ISR(void) // 0x000D50 CMP1INT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void CMP2INT_ISR(void) // 0x000D52 CMP2INT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void CMP3INT_ISR(void) // 0x000D54 CMP3INT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void T1PINT_ISR(void) // 0x000D56 T1PINT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void T1CINT_ISR(void) // 0x000D58 T1CINT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void T1UFINT_ISR(void) // 0x000D5A T1UFINT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void T1OFINT_ISR(void) // 0x000D5C T1OFINT (EV-A)
{
PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; // Must acknowledge the PIE group
// Next two lines for debug only - remove after inserting your ISR
asm (" ESTOP0"); // Emulator Halt instruction
while(1);
}
/*********************************************************************/
interrupt void T2PINT_ISR(void) // 0x000D60 T2PINT (EV-A)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -