📄 system.h
字号:
#ifndef _SYSTEM
#define _SYSTEM
/************************************************************************/
/* ST9 family core control registers release 4.0 */
/* ST9 family Core Control Register */
/* */
/************************************************************************/
/****************************************/
/* REGISTER FILE GROUPS DEFINITION */
/****************************************/
#define BK00 ((unsigned char)0 ) /* r0 to r7 in group 0 */
#define BK01 ((unsigned char)1 ) /* r8 to r15 in group 0 */
#define BK10 ((unsigned char)2 ) /* r0 to r7 in group 1 */
#define BK11 ((unsigned char)3 ) /* r8 to r15 in group 1 */
#define BK20 ((unsigned char)4 ) /* r0 to r7 in group 2 */
#define BK21 ((unsigned char)5 ) /* r8 to r15 in group 2 */
#define BK30 ((unsigned char)6 ) /* r0 to r7 in group 3 */
#define BK31 ((unsigned char)7 ) /* r8 to r15 in group 3 */
#define BK40 ((unsigned char)8 ) /* r0 to r7 in group 4 */
#define BK41 ((unsigned char)9 ) /* r8 to r15 in group 4 */
#define BK50 ((unsigned char)10) /* r0 to r7 in group 5 */
#define BK51 ((unsigned char)11) /* r8 to r15 in group 5 */
#define BK60 ((unsigned char)12) /* r0 to r7 in group 6 */
#define BK61 ((unsigned char)13) /* r8 to r15 in group 6 */
#define BK70 ((unsigned char)14) /* r0 to r7 in group 7 */
#define BK71 ((unsigned char)15) /* r8 to r15 in group 7 */
#define BK80 ((unsigned char)16) /* r0 to r7 in group 8 */
#define BK81 ((unsigned char)17) /* r8 to r15 in group 8 */
#define BK90 ((unsigned char)18) /* r0 to r7 in group 9 */
#define BK91 ((unsigned char)19) /* r8 to r15 in group 9 */
#define BKA0 ((unsigned char)20) /* r0 to r7 in group A */
#define BKA1 ((unsigned char)21) /* r8 to r15 in group A */
#define BKB0 ((unsigned char)22) /* r0 to r7 in group B */
#define BKB1 ((unsigned char)23) /* r8 to r15 in group B */
#define BKC0 ((unsigned char)24) /* r0 to r7 in group C */
#define BKC1 ((unsigned char)25) /* r8 to r15 in group C */
#define BKD0 ((unsigned char)26) /* r0 to r7 in group D */
#define BKD1 ((unsigned char)27) /* r8 to r15 in group D */
#define BKE0 ((unsigned char)28) /* r0 to r7 in group E */
#define BKE1 ((unsigned char)29) /* r8 to r15 in group E */
#define BKF0 ((unsigned char)30) /* r0 to r7 in group F */
#define BKF1 ((unsigned char)31) /* r8 to r15 in group F */
#define BK_SYS BKE0 /* Group system definition */
#define BK_F BKF0 /* page register definition */
/************************/
/* SYSTEM REGISTERS */
/************************/
register volatile unsigned int FCW asm("RR230"); /* Flags and control word. */
register volatile unsigned char CICR asm("R230"); /* Central interrupt control register. */
#define Im_gcenm ((unsigned char)0x80) /* Global counter enable bit mask */
#define Im_tlipm ((unsigned char)0x40) /* Top level interrupt pending mask. */
#define Im_tlim ((unsigned char)0x20) /* Top level interrupt mask. */
#define Im_ienm ((unsigned char)0x10) /* Interrupt enable flag mask. */
#define Im_iamm ((unsigned char)0x08) /* Interrupt arbitration mode mask. */
#define Im_cpl2m ((unsigned char)0x04) /* Current priority level bit 2 mask. */
#define Im_cpl1m ((unsigned char)0x02) /* Current priority level bit 1 mask. */
#define Im_cpl0m ((unsigned char)0x01) /* Current priority level bit 0 mask. */
#define Im_cplm ( Im_cpl2m|Im_cpl1m|Im_cpl0m ) /* Current priority level */
register volatile unsigned char FLAGR asm("R231"); /* Flags register. */
#define FLm_cm ((unsigned char)0x80) /* Carry flag mask. */
#define FLm_zm ((unsigned char)0x40) /* Zero flag mask. */
#define FLm_sm ((unsigned char)0x20) /* Sign flag mask. */
#define FLm_vm ((unsigned char)0x10) /* Overflow flag mask. */
#define FLm_dm ((unsigned char)0x08) /* Decimal adjust flag mask. */
#define FLm_hm ((unsigned char)0x04) /* Half carry flag mask. */
#define FLm_ufm ((unsigned char)0x02) /* User flag 1 mask. */
#define FLm_dpm ((unsigned char)0x01) /* Data/program memory mask. */
register volatile unsigned int RPP asm("RR232"); /* Register pointer pair. */
register volatile unsigned char RP0R asm("R232"); /* Register pointer # 0. */
#define RPm_rp0sm ((unsigned char)0x04) /* Register pointer selector mask */
register volatile unsigned char RP1R asm("R233"); /* Register pointer # 1. */
#define RPm_rp1sm ((unsigned char)0x04) /* Register pointer selector mask */
register volatile unsigned char PPR asm("R234"); /* Page pointer register. */
register volatile unsigned char MODER asm("R235"); /* Mode register. */
#define MOm_sspm ((unsigned char)0x80) /* System stack pointer mask (Int/Ext). */
#define MOm_uspm ((unsigned char)0x40) /* User stack pointer mask (Int/Ext). */
#define MOm_div2m ((unsigned char)0x20) /* External clock divided by 2 mask. */
#define MOm_prs2m ((unsigned char)0x10) /* Internal clock prescaling bit 2 mask. */
#define MOm_prs1m ((unsigned char)0x08) /* Internal clock prescaling bit 1 mask. */
#define MOm_prs0m ((unsigned char)0x04) /* Internal clock prescaling bit 0 mask. */
#define MOm_prsm ( MOm_prs2m|MOm_prs1m|MOm_prs0m ) /* Internal clock prescaler */
#define MOm_brqenm ((unsigned char)0x02) /* Bus request enable mask. */
#define MOm_himpm ((unsigned char)0x01) /* High impedence enable mask. */
register volatile unsigned int USPR asm("RR236"); /* User stack pointer. */
register volatile unsigned char USPHR asm("R236"); /* User stack pointer, msb. */
register volatile unsigned char USPLR asm("R237"); /* User stack pointer, lsb. */
register volatile unsigned int SSPR asm("RR238"); /* System stack pointer. */
register volatile unsigned char SSPHR asm("R238"); /* System stack pointer, msb. */
register volatile unsigned char SSPLR asm("R239"); /* System stack pointer, lsb. */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -