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

📄 vectors.c

📁 富士通单片机MB90F387上实现MODBUS
💻 C
字号:
/**********************************************************
*
* The following software is for demonstration purposes only. 
* It is not fully tested, nor validated in order to fullfill  
* its task under all circumstances. Therefore, this software  
* or any part of it must only be used in an evaluation        
* laboratory environment.                                    
* This software is subject to the rules of Accemic's 
* standard DISCLAIMER, available at www.accemic.com.
*
* Copyright (c) 2001-2003 Accemic GmbH & Co. KG 
* All rights reserved  
*
***********************************************************
*
* Module name        : vectors.c
* Version            : 1.0       
* Date of creation.  : 07.03.2003
* Last Modification  : 07.03.2003
* Authors            : Rainer Harthaus (RH)
* 
***********************************************************
* 
* Description: 
* Initialisation of all interrupt resources
*
* IMPORTANT: 
* Don't change the ICR register used by the kernel UART
*
***********************************************************
*
* History
*
* Vers   * Datum    * Name  * Subject
* 1.00   * 07.03.03 * RH    * first creation
* 
***********************************************************
*
* Please visit www.accemic.com
* for updates and other valuable developer ressources
*
***********************************************************/

#include "stddefs.h"
#include "monitor.h"

/**********************************************************
***********************************************************
*
* InitIrqLevels
*
***********************************************************
***********************************************************
* 
* Description: 
* Initialisation of all interrupt control registers
* 
***********************************************************
* 
* IMPORTANT: 
* Don't change the ICR registers used by the kernel UART
*
***********************************************************/

void InitIrqLevels(void)
{ 
  int i;
  
  for( i = 0; i < 15; i++)
  { if( (i != monitor_icr_rx) && (i != monitor_icr_tx)) 
    *((BYTE*) &ICR00 + i) = 7;
  }
}

/**********************************************************
***********************************************************
*
* DefaultIRQHandler
*
***********************************************************
***********************************************************
* 
* Description: 
* This function should never been called!
* 
**********************************************************/

__interrupt void DefaultIRQHandler (void)
{ 
/* 
You can use the message functions of Accemic MDE here:

char MsgBuf[32];
acc_MessageBox(
			(__far char*)"DefaultIRQHandler was called",
			MB_OK,
			MsgBuf);
*/
}

/**********************************************************
***********************************************************
* Interrupt vector-table
***********************************************************
**********************************************************/

/**********************************************************
*  Reset Vector  - see start.asm 
**********************************************************/
extern void __interrupt EntryPoint 	   (void);
#pragma intvect EntryPoint	8

/**********************************************************
* 385 family
***********************************************************/
#if   defined (__CPU_MB90385_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma         intvect OnADC 18 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma         intvect OnReloadTimer0 17 
  #endif

  #if defined USE_RELOAD1_INT
  extern void __interrupt OnReloadTimer1 (void);
  #pragma         intvect OnReloadTimer1 36 
  #endif

  #if defined USE_UART1RX_INT
  extern void __interrupt OnUART1RX (void);
  #pragma         intvect OnUART1RX 37 
  #endif

  #if defined USE_UART1TX_INT
  extern void __interrupt OnUART1TX (void);
  #pragma         intvect OnUART1TX 38 
  #endif
    

/**********************************************************
* 390 family
***********************************************************/
#elif defined (__CPU_MB90390_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 31 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 23
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 24
  #endif


/**********************************************************
* 420 family
***********************************************************/
#elif defined (__CPU_MB90420_SERIES) || \
      defined (__CPU_MB90425_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 32 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 17
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 28
  #endif


/**********************************************************
* 435 family
***********************************************************/
#elif defined (__CPU_MB90435_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 18 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 17
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 36
  #endif


/**********************************************************
* 440 family
***********************************************************/
#elif defined (__CPU_MB90440_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 18 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 17
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 36
  #endif


/**********************************************************
* 455 family
***********************************************************/
#elif defined (__CPU_MB90455_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 18 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 17
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 36
  #endif


/**********************************************************
* 460 family
***********************************************************/

#elif defined (__CPU_MB90460_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 11 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 30
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 18  
  #endif


/**********************************************************
* 470 family
***********************************************************/
#elif defined (__CPU_MB90470_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 40 
  #endif


/**********************************************************
* 495 family
***********************************************************/
#elif defined (__CPU_MB90495_SERIES) 

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma         intvect OnADC 18 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma         intvect OnReloadTimer0 17 
  #endif

  #if defined USE_RELOAD1_INT
  extern void __interrupt OnReloadTimer1 (void);
  #pragma         intvect OnReloadTimer1 36 
  #endif
 
/**********************************************************
* 520 family
***********************************************************/
#elif defined (__CPU_MB90520_SERIES)


  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 11 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 38
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 40
  #endif

  
/**********************************************************
* 540 family
***********************************************************/
#elif defined (__CPU_MB90540_SERIES) || \
      defined (__CPU_MB90545_SERIES)
  
  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma         intvect OnReloadTimer0 17
  #endif

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma         intvect OnADC 18 
  #endif

  #if defined USE_RELOAD1_INT
  extern void __interrupt OnReloadTimer1 (void);
  #pragma         intvect OnReloadTimer1 36 
  #endif


/**********************************************************
* 550 family
***********************************************************/
#elif defined (__CPU_MB90550A_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 11 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 25
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 27
  #endif


/**********************************************************
* 560 family
***********************************************************/
#elif defined (__CPU_MB90560_SERIES) || \
      defined (__CPU_MB90565_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 11 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 30
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 32
  #endif

 
/**********************************************************
* 570 family
***********************************************************/
#elif defined (__CPU_MB90570_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 11 
  #endif


/**********************************************************
* 580 family
***********************************************************/
#elif defined (__CPU_MB90580_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 11 
  #endif


/**********************************************************
* 590 family
***********************************************************/
#elif defined (__CPU_MB90590_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 31 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 23
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 24
  #endif


/**********************************************************
* 595 family
***********************************************************/
#elif defined (__CPU_MB90595_SERIES)

  #if defined USE_ADC_INT
  extern void __interrupt OnADC (void);
  #pragma intvect OnADC 16 
  #endif

  #if defined USE_RELOAD0_INT 
  extern void __interrupt OnReloadTimer0 (void);
  #pragma intvect OnReloadTimer0 15
  #endif

  #if defined USE_RELOAD1_INT 
  extern void __interrupt OnReloadTimer1 (void);
  #pragma intvect OnReloadTimer1 36
  #endif

#else

/**********************************************************
* Error: Your selected CPU is not defined 
***********************************************************/
  #error Error: Your selected CPU is not defined in vectors.c
  
#endif

#pragma defvect DefaultIRQHandler


  

⌨️ 快捷键说明

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