📄 int.h
字号:
/************************************************************************
* File: int.h
*
* Copyright: Peak Microtech Corporation
*
***********************************************************************/
#ifndef __INT_H__
#define __INT_H__
#include "uart.h"
#define NOTUSEDISR (fp)(0)
typedef void (*fp)(void);
void NMI();
void SWI7();
void AUTO_INT();
void TIMER0();
void TIMER1();
void V_ENGINE();
void SIO();
void EXT_IRQ0();
void EXT_IRQ1();
void DMA0();
void DMA1();
void TIMER2();
void TIMER3();
void EXT_IRQ2();
void EXT_IRQ3();
void UART0_ER();
void UART0_RX();
void UART0_TX();
void UART1_ER();
void UART1_RX();
void UART1_TX();
void VSP();
void PWM();
// INT register define// status bit 13 : interrupt Enable(1) / Disable(0)
#define _ENABLE_INT() asm( "set 13" )
#define _DISABLE_INT() asm( "clr 13" )
// status bit 12 : vectored mode(1) / Auto vectored mode(0)
#define _SET_VECTORED_MODE_INT() asm( "set 12" )
#define _SET_AUTOVECTORED_MODE_INT() asm( "clr 12" )
#undef DG_BIT( _BIT_ )
#define DG_BIT( _BIT_ ) (0x1<<(_BIT_))
#define _REG_INT_MOD (*(volatile U16 *)(0x01800c00))
#define _INT_MOD_STATUS_EXTIRQ( _N_ ) DG_BIT( _N_ )
#define _INT_MOD_TRIGGER_EXTIRQ( _N_ ) DG_BIT( (_N_) + 8 )
#define _INT_MOD_STATUS_ACTIVELOW( _N_ ) 0
#define _INT_MOD_STATUS_ACTIVEHIGH( _N_ ) DG_BIT( _N_ )
#define _INT_MOD_TRIGGER_LEVEL( _N_ ) 0
#define _INT_MOD_TRIGGER_EDGE( _N_ ) DG_BIT( (_N_) + 8 )
#define _REG_INT_VEC (*(volatile unsigned short *)(0x01800c04))
#define _REG_ISR_END (*(volatile unsigned char *)(0x01800c04))
#define _REG_INT_EN (*(volatile unsigned long *)(0x01800c08))
#define _REG_INT_ST (*(volatile unsigned long *)(0x01800c0c))
#define _ISR_HIGH_3BIT 0x0100 // INT VEC Base Address : 0x80
#define _ISR_END( _INTNO_ ) {_REG_ISR_END = _INTNO_;}
#define _INT_BASE_OFFSET 0x20
#define _INT_NO_TIMER0 0
#define _INT_NO_TIMER1 1
#define _INT_NO_SOUND 2
#define _INT_NO_EXTIRQ0 5
#define _INT_NO_EXTIRQ1 6
#define _INT_NO_TIMER2 9
#define _INT_NO_TIMER3 10
#define _INT_NO_EXTIRQ2 11
#define _INT_NO_EXTIRQ3 12
#define _INT_NO_EXTIRQ4 19
#define _INT_NO_EXTIRQ5 20
#define _INT_NO_EXTIRQ6 21
#define _INT_NO_EXTIRQ7 22
#define _INT_TIMER0 DG_BIT(_INT_NO_TIMER0)
#define _INT_TIMER1 DG_BIT(_INT_NO_TIMER1)
#define _INT_TIMER2 DG_BIT(_INT_NO_TIMER2)
#define _INT_TIMER3 DG_BIT(_INT_NO_TIMER3)
#define _INT_SOUND DG_BIT(_INT_NO_SOUND)
#define _INT_EXTIRQ0 DG_BIT(_INT_NO_EXTIRQ0)
#define _INT_EXTIRQ1 DG_BIT(_INT_NO_EXTIRQ1)
#define _INT_EXTIRQ2 DG_BIT(_INT_NO_EXTIRQ2)
#define _INT_EXTIRQ3 DG_BIT(_INT_NO_EXTIRQ3)
#define _INT_EXTIRQ4 DG_BIT(_INT_NO_EXTIRQ4)
#define _INT_EXTIRQ5 DG_BIT(_INT_NO_EXTIRQ5)
#define _INT_EXTIRQ6 DG_BIT(_INT_NO_EXTIRQ6)
#define _INT_EXTIRQ7 DG_BIT(_INT_NO_EXTIRQ7)// Timer1 Define#define _REG_TIMER0_CON (*(volatile U16 *)(0x01801400))
#define _REG_TIMER0_CNT (*(volatile U16 *)(0x01801404))
#define _REG_TIMER1_CON (*(volatile U16 *)(0x01801408))
#define _REG_TIMER1_CNT (*(volatile U16 *)(0x0180140c))
#define _TIMER_PRESCALER_SHIFT (8)
#define _TIMER_OPERATION_SHIFT (1)
#define _TIMER_ENABLE_SHIFT (0)
#define _TIMER_PRESCALER_MASK ((0x000000ffUL)<<_TIMER_PRESCALER_SHIFT)
#define _TIMER_OPERATION_MASK ((0x00000001UL)<<_TIMER_OPERATION_SHIFT)
#define _TIMER_ENABLE_MASK ((0x00000001UL)<<_TIMER_ENABLE_SHIFT)
#define _TIMER_OPERATION_ONESHOT (0<<_TIMER_OPERATION_SHIFT)
#define _TIMER_OPERATION_CONTINUE (1<<_TIMER_OPERATION_SHIFT)
#define _TIMER_ENABLE (1<<_TIMER_ENABLE_SHIFT)
#define _TIMER_DISABLE (0<<_TIMER_ENABLE_SHIFT)#define CACHE_SIZE ((1024*4)/4) // 4KByte#define XIN 14318000.00
long _vgSDK_Cache_Flag;
void InitInterrupt( void );
void vgSetInterruptVector( int num, void (*event)() );void _vgSDK_Cache_Reset();U32 vgGetSysFreq();void vgInitTimer1( void (*event)(), U32 vr0clock );void vgSetTimer1( U16 usec );void vgStopTimer1( void );
#endif /* __INT_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -