⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intr.h

📁 信号fm调制与解调的dsp实现
💻 H
字号:
/******************************************************************/
/* intr.h V0.00                                                   */
/* Copyright (c) Texas Instruments , Incorporated  1997           */
/******************************************************************/
#include "regs54xx.h"

typedef void (*ISRFUNC)(void);

void software_trap(int trap);     /* Initiates trap to given interrupt */

/******************************************************************/
/* Define all macros needed to enable/disable interrupts, set     */
/* interrupt vectors, allocate space for interrupt vectors and    */
/* set interrupt vector pointer.                                  */
/******************************************************************/
extern unsigned int _vectors;	/* Start label of vector table */
extern ISRFUNC isr_jump_table[]; /* Array of ISR pointers       */

/******************************************************************/
/* Define interrupt trap numbers                                  */
/******************************************************************/

#define RS_TRAP		0
#define NMI_TRAP	   1
#define INT0_TRAP	   16
#define INT1_TRAP	   17
#define INT2_TRAP	   18
#define TINT_TRAP	   19
#define RINT0_TRAP	20
#define XINT0_TRAP	21
#define DMAC0_TRAP	22
#define DMAC1_TRAP	23
#define INT3_TRAP	   24
#define HPINT_TRAP	25
#define RINT1_TRAP	26
#define DMAC2_TRAP	26
#define XINT1_TRAP	27
#define DMAC3_TRAP	27
#define DMAC4_TRAP	28
#define DMAC5_TRAP	29



#define SINTR		0
#define SINT16		1
#define SINT17		2
#define SINT18		3
#define SINT19		4
#define SINT20		5
#define SINT21		6
#define SINT22		7
#define SINT23		8
#define SINT24		9
#define SINT25		10
#define SINT26		11
#define SINT27		12
#define SINT28		13
#define SINT29		14
#define SINT30		15
#define SINT0		16
#define SINT1		17
#define SINT2		18
#define SINT3		19
#define SINT4		20
#define SINT5		21
#define SINT6		22
#define SINT7		23
#define SINT8		24
#define SINT9		25
#define SINT10		26
#define SINT11		27
#define SINT12      28
#define SINT13      29


/******************************************************************/
/* INTR_ENABLE - enables all masked interrupts by resetting INTM  */
/*               bit in Status Register 1                         */
/******************************************************************/
#define INTR_GLOBAL_ENABLE\
        asm("\tRSBX	INTM")

/******************************************************************/
/* INTR_DISABLE - disables all masked interrupts by setting INTM  */
/*                bit in Status Register 1                        */
/******************************************************************/
#define INTR_GLOBAL_DISABLE\
        asm("\tSSBX	INTM")

/******************************************************************/
/* INTR_CHECK_FLAG(flag) - check the corresponding flag in the IFR*/
/*                         register                               */
/******************************************************************/
#define INTR_CHECK_FLAG(flag)\
      (IFR & (0x1u << flag))

/******************************************************************/
/* INTR_CLR_FLAG(flag) - clears the corresponding flag in the IFR */
/*                       register                                 */
/******************************************************************/
#define INTR_CLR_FLAG(flag)\
      {IFR &= (0x1u << flag);}

/******************************************************************/
/* IDLE(mode) - sets CPU in idle mode based on level selected     */
/******************************************************************/
#define IDLE(mode)\
	{ asm("\tidle " #mode); }

/******************************************************************/
/* INTR_ENABLE (flag) - set interrupt vector flags to             */
/*     enable/reset specific device interrupts                    */
/*  flag - bit to set in interrupt mask register                  */
/******************************************************************/
#define INTR_ENABLE(flag)\
     IMR |= MASK_BIT(flag)

/******************************************************************/
/* INTR_DISABLE (flag) - set interrupt vector flags to reset      */
/*                       specific device interrupts               */
/*  flag - bit to set in interrupt mask register                  */
/******************************************************************/
#define INTR_DISABLE(flag)\
     IMR &= ~MASK_BIT(flag)

/******************************************************************/
/* INTR_INIT - sets interrupt vector pointer                      */
/******************************************************************/
#define INTR_INIT\
    {PMST &= 0x7f; PMST |= ( ( (unsigned int)&_vectors ) & 0xff80u); }

/******************************************************************/
/* INTR_HOOK(isr, isrfunc) - sets interrupt service routine vec   */
/*    isr - interrupt trap number (see TRAP instruction)          */
/*    isrfunc - address of interrupt service routine              */
/******************************************************************/
#define INTR_HOOK(trap_no, isrfunc) \
   { isr_jump_table[trap_no] = (ISRFUNC)isrfunc; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -