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

📄 projectvectors.c

📁 freescale hc12_C32 例程
💻 C
字号:
/******************************************************************************
*                                             COPYRIGHT (c) MOTOROLA 2003   
* FILE NAME: projectvectors.c                                             
*                                                                           
* PURPOSE: source file which includes all C32 (L45J) interrupt handlers
*		     							 
*                                                                           
* DESCRIPTION:  project vectors (interrupt handlers)        
*                                                                           
* NOTE: Interrupt vectors must point to fixed paged address. From the fixed
* 		routine a call can redirect to paged memory. 
*                                                                           
* AUTHOR: r9aabe    LOCATION: Austin,TX     LAST EDIT DATE: 05/12/03
*                                                                                             
******************************************************************************/

/*Include files */

#include "projectvectors.h"

/*Warning Disable*/

#pragma MESSAGE DISABLE C12004		//Warning: Far Keyword ignored for Function

/*Local Prototypes*/

void software_trap(void);

//************************************************************************
// SOFTWARE TRAP FUNCTION
// DESCRIPTION:
// Function that traps  all unexpected interrupts.  Used for debugging 
// software to find runaway code.
//
        
void software_trap(void){ for(;;); }

//************************************************************************
// UNUSED ISR
// DESCRIPTION:
// Takes place of undefined vectors. 
// Used for reserved vector spaces
//
#pragma CODE_SEG NON_BANKED        
interrupt void unused_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// PWM SHUTDOWN ISR
// DESCRIPTION:
// Interrupt asserted at the beginning of emergency shutdown initiated 
// on PWM7. PWM pin state will default and interrupt taken.
//
#pragma CODE_SEG NON_BANKED        
interrupt void pwm_shutdown_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// PORTP ISR
// DESCRIPTION:
// Interrupt asserted on a PORTP per pin basis, rising or falling edge. 
// Triggered by input transistion and stored as a flag.
//
#pragma CODE_SEG NON_BANKED 
interrupt void portp_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// MSCAN0 TRANSMIT ISR
// DESCRIPTION:
// Interrupt asserted when at least one of three transmit buffers empty.
//
#pragma CODE_SEG NON_BANKED
interrupt void mscan0_tx_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// MSCAN0 RECEIVE ISR
// DESCRIPTION:
// Interrupt asserted when a message has been received and shifted into 
// the forground buffer of the receiver FIFO.
//
#pragma CODE_SEG NON_BANKED
interrupt void mscan0_rx_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// MSCAN0 ERROR ISR
// DESCRIPTION:
// Interrupt asserted when overrun, error or warning on the receive buffer.
//
#pragma CODE_SEG NON_BANKED
interrupt void mscan0_error_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// MSCAN0 WAKEUP ISR
// DESCRIPTION:
// Interrupt asserted with CAN activity during MSCAN internal sleep.
//
#pragma CODE_SEG NON_BANKED
interrupt void mscan0_wakeup_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// FLASH ISR
// DESCRIPTION:
// Interrupt asserted upon command completion or the address, data or  
// command buffers are empty.
//
#pragma CODE_SEG NON_BANKED
interrupt void flash_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// CRG SELF CLOCK MODE ISR
// DESCRIPTION:
// Interrupt asserted when self clock mode engaged. 
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void crg_scm_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// CRG PLL LOCK CONDITION CHANGED ISR
// DESCRIPTION:
// Interrupt asserted when lock condition of the PLL has changed.
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void crg_pll_lock_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// PORTJ ISR
// DESCRIPTION:
// Interrupt asserted on PORTJ pin edge, saved as a flag. 
// All port pins serviced by one vector.
//
#pragma CODE_SEG NON_BANKED
interrupt void portj_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// ATD0 SEQUENCE COMPLETE ISR
// DESCRIPTION:
// Interrupt asserted upon completion of ATD0 sequence. 
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void atd0_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// SCI0 ISR
// DESCRIPTION:
// Interrupt asserted from one of five sources. Two transmit and one receive. 
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void sci0_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// SPI0 ISR
// DESCRIPTION:
// Interrupt asserted from one of three sources. 
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void spi0_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// PULSE ACCUMULATOR A EDGE ISR
// DESCRIPTION:
// Interrupt asserted when edge received on Pulse Accumulator A. 
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void pa_a_edge_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// PULSE ACCUMULATOR A OVERFLOW ISR
// DESCRIPTION:
// Interrupt asserted upon Pulse Accumulator A overflow. 
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void pa_a_overflow_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// REAL TIME ISR
// DESCRIPTION:
// Interrupt asserted when REAL-TIME interrupt period elapses. Operates 
// from OSCCLK.
// 
//
#pragma CODE_SEG NON_BANKED
interrupt void rti_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// INTERRUPT REQUEST PIN ISR
// DESCRIPTION:
// Interrupt asserted at IRQ PIN event. The event can be edge or level
// triggered. For edge, the interrupt is lateched internally. Internal 
// latch cleared when ISR taken.
// 
#pragma CODE_SEG NON_BANKED
interrupt void irq_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// EXTERNAL INTERRUPT REQUEST PIN ISR
// DESCRIPTION:
// Interrupt asserted on XIRQ low level event. ISR routine should handshake 
// with interrupt source to release the pin. XIRQ is enabled by clearing the
// X-bit. After enabled, disabled only after POR. 
//
#pragma CODE_SEG NON_BANKED
interrupt void xirq_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// SOFTWARE INTERRUPT INSTRUCTION ISR
// DESCRIPTION:
// Interrupt asserted when SWI instruction executed. This acts as a hook 
// into on-board monitors and development instructions.
//
#pragma CODE_SEG NON_BANKED
interrupt void swi_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// UNIMPLIMENTED INSTRUCTION (OPCODE) TRAP ISR
// DESCRIPTION:
// Interrupt asserted when unimplimented opcode encountered. The stacked 
// address can be used to determine te source of the opcode.
//
#pragma CODE_SEG NON_BANKED
interrupt void trap_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// COMPUTER OPERATING PROPERLY (WATCHDOG) TIMER ISR
// DESCRIPTION:
// Interrupt asserted upon COP timeout. Operates from OSCCLK.
// To kick the dog write 55h then AAh to ARMCOP. Window COP bit extends
// basic operation by having a valid write during a percentage of the COP 
// window.
//
#pragma CODE_SEG NON_BANKED
interrupt void cop_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// SELF CLOCK-MODE ISR
// DESCRIPTION:
// Interrupt asserted when either entry or exit from Self-Clock Mode (SCM). 
// Clock Quality Checker is used to determine entery into SCM. The Clock
// Quality Checker provides a better clock check beyond the Clock Moitor. 
// A period of 50,000 PLL clocks is called a check-window. 4096 OSC clock 
// edges within a check-window means OSC OK. After 50 window tries IC will 
// enter PLL Self Clock (1Mz to 5MHz).
//
#pragma CODE_SEG NON_BANKED
interrupt void clockmonitor_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT      

//************************************************************************
// TIM0 CH0 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch0_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH1 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch1_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH2 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch2_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH3 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch3_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH4 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch4_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH5 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch5_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH6 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch6_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 CH7 ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_ch7_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// TIM0 OVERFLOW ISR
// DESCRIPTION:
//
#pragma CODE_SEG NON_BANKED        
interrupt void tim0_overflow_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT

//************************************************************************
// VREG LVI ISR
// DESCRIPTION:
// 
#pragma CODE_SEG NON_BANKED        
interrupt void vreg_lvi_isr(void){ (void) software_trap(); }
#pragma CODE_SEG DEFAULT


/*Warning Enable*/

#pragma MESSAGE WARNING C12004		//Warning: Far Keyword ignored for Function       


⌨️ 快捷键说明

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