📄 mc9s08dz60.h
字号:
/* Based on CPU DB MC9S08DZ60_64, version 2.87.006 (RegistersPrg V2.03) */
/*
** ###################################################################
** Filename : MC9S08DZ60.h
** Processor : MC9S08DZ60FEE
** FileFormat: V2.03
** DataSheet : MC9S08DZ60 Rev. 0.05 8/5/2005
** Compiler : CodeWarrior compiler
** Date/Time : 13.02.2006, 16:10
** Abstract :
** This header implements the mapping of I/O devices.
**
** (c) Copyright UNIS, spol. s r.o. 1997-2006
** UNIS, spol. s r.o.
** Jundrovska 33
** 624 00 Brno
** Czech Republic
** http : www.processorexpert.com
** mail : info@processorexpert.com
**
** File-Format-Revisions:
** - 14.11.2005, V2.00 :
** - Deprecated symbols added for backward compatibility (section at the end of this file)
** - 15.11.2005, V2.01 :
** - Fixed invalid instruction in macro __RESET_WATCHDOG for HCS12 family.
** - 17.12.2005, V2.02 :
** - Arrays (symbols xx_ARR) are defined as pointer to volatile, see issue #2778
** - 16.01.2006, V2.03 :
** - Fixed declaration of non volatile registers. Now it does not require (but allows) their initialization, see issue #2920.
** - "volatile" modifier removed from declaration of non volatile registers (that contain modifier "const")
**
** CPU Registers Revisions:
** - none
** ###################################################################
*/
#ifndef _MC9S08DZ60_H
#define _MC9S08DZ60_H
/* Types definition */
typedef unsigned char byte;
typedef unsigned int word;
typedef unsigned long dword;
typedef unsigned long dlong[2];
#ifndef __RESET_WATCHDOG_MACRO
#define __RESET_WATCHDOG_MACRO
/* Watchdog reset macro */
#ifdef _lint
#define __RESET_WATCHDOG() /* empty */
#else
#define __RESET_WATCHDOG() {asm sta SRS;} /* Just write a byte to feed the dog */
#endif
#endif /* __RESET_WATCHDOG_MACRO */
#define REG_BASE 0x0000 /* Base address for the I/O register block */
#pragma MESSAGE DISABLE C1106 /* WARNING C1106: Non-standard bitfield type */
/**************** interrupt vector table ****************/
#define Vacmp2 0x0000FFC0
#define Vacmp1 0x0000FFC2
#define Vcantx 0x0000FFC4
#define Vcanrx 0x0000FFC6
#define Vcanerr 0x0000FFC8
#define Vcanwu 0x0000FFCA
#define Vrtc 0x0000FFCC
#define Viic 0x0000FFCE
#define Vadc 0x0000FFD0
#define Vport 0x0000FFD2
#define Vsci2tx 0x0000FFD4
#define Vsci2rx 0x0000FFD6
#define Vsci2err 0x0000FFD8
#define Vsci1tx 0x0000FFDA
#define Vsci1rx 0x0000FFDC
#define Vsci1err 0x0000FFDE
#define Vspi1 0x0000FFE0
#define Vtpm2ovf 0x0000FFE2
#define Vtpm2ch1 0x0000FFE4
#define Vtpm2ch0 0x0000FFE6
#define Vtpm1ovf 0x0000FFE8
#define Vtpm1ch5 0x0000FFEA
#define Vtpm1ch4 0x0000FFEC
#define Vtpm1ch3 0x0000FFEE
#define Vtpm1ch2 0x0000FFF0
#define Vtpm1ch1 0x0000FFF2
#define Vtpm1ch0 0x0000FFF4
#define Vlol 0x0000FFF6
#define Vlvd 0x0000FFF8
#define Virq 0x0000FFFA
#define Vswi 0x0000FFFC
#define Vreset 0x0000FFFE
/**************** registers I/O map ****************/
/*** PTAD - Port A Data Register; 0x00000000 ***/
typedef union {
byte Byte;
struct {
byte PTAD0 :1; /* Port A Data Register Bit 0 */
byte PTAD1 :1; /* Port A Data Register Bit 1 */
byte PTAD2 :1; /* Port A Data Register Bit 2 */
byte PTAD3 :1; /* Port A Data Register Bit 3 */
byte PTAD4 :1; /* Port A Data Register Bit 4 */
byte PTAD5 :1; /* Port A Data Register Bit 5 */
byte PTAD6 :1; /* Port A Data Register Bit 6 */
byte PTAD7 :1; /* Port A Data Register Bit 7 */
} Bits;
} PTADSTR;
extern volatile PTADSTR _PTAD @0x00000000;
#define PTAD _PTAD.Byte
#define PTAD_PTAD0 _PTAD.Bits.PTAD0
#define PTAD_PTAD1 _PTAD.Bits.PTAD1
#define PTAD_PTAD2 _PTAD.Bits.PTAD2
#define PTAD_PTAD3 _PTAD.Bits.PTAD3
#define PTAD_PTAD4 _PTAD.Bits.PTAD4
#define PTAD_PTAD5 _PTAD.Bits.PTAD5
#define PTAD_PTAD6 _PTAD.Bits.PTAD6
#define PTAD_PTAD7 _PTAD.Bits.PTAD7
#define PTAD_PTAD0_MASK 1
#define PTAD_PTAD1_MASK 2
#define PTAD_PTAD2_MASK 4
#define PTAD_PTAD3_MASK 8
#define PTAD_PTAD4_MASK 16
#define PTAD_PTAD5_MASK 32
#define PTAD_PTAD6_MASK 64
#define PTAD_PTAD7_MASK 128
/*** PTADD - Data Direction Register A; 0x00000001 ***/
typedef union {
byte Byte;
struct {
byte PTADD0 :1; /* Data Direction for Port A Bit 0 */
byte PTADD1 :1; /* Data Direction for Port A Bit 1 */
byte PTADD2 :1; /* Data Direction for Port A Bit 2 */
byte PTADD3 :1; /* Data Direction for Port A Bit 3 */
byte PTADD4 :1; /* Data Direction for Port A Bit 4 */
byte PTADD5 :1; /* Data Direction for Port A Bit 5 */
byte PTADD6 :1; /* Data Direction for Port A Bit 6 */
byte PTADD7 :1; /* Data Direction for Port A Bit 7 */
} Bits;
} PTADDSTR;
extern volatile PTADDSTR _PTADD @0x00000001;
#define PTADD _PTADD.Byte
#define PTADD_PTADD0 _PTADD.Bits.PTADD0
#define PTADD_PTADD1 _PTADD.Bits.PTADD1
#define PTADD_PTADD2 _PTADD.Bits.PTADD2
#define PTADD_PTADD3 _PTADD.Bits.PTADD3
#define PTADD_PTADD4 _PTADD.Bits.PTADD4
#define PTADD_PTADD5 _PTADD.Bits.PTADD5
#define PTADD_PTADD6 _PTADD.Bits.PTADD6
#define PTADD_PTADD7 _PTADD.Bits.PTADD7
#define PTADD_PTADD0_MASK 1
#define PTADD_PTADD1_MASK 2
#define PTADD_PTADD2_MASK 4
#define PTADD_PTADD3_MASK 8
#define PTADD_PTADD4_MASK 16
#define PTADD_PTADD5_MASK 32
#define PTADD_PTADD6_MASK 64
#define PTADD_PTADD7_MASK 128
/*** PTBD - Port B Data Register; 0x00000002 ***/
typedef union {
byte Byte;
struct {
byte PTBD0 :1; /* Port B Data Register Bit 0 */
byte PTBD1 :1; /* Port B Data Register Bit 1 */
byte PTBD2 :1; /* Port B Data Register Bit 2 */
byte PTBD3 :1; /* Port B Data Register Bit 3 */
byte PTBD4 :1; /* Port B Data Register Bit 4 */
byte PTBD5 :1; /* Port B Data Register Bit 5 */
byte PTBD6 :1; /* Port B Data Register Bit 6 */
byte PTBD7 :1; /* Port B Data Register Bit 7 */
} Bits;
} PTBDSTR;
extern volatile PTBDSTR _PTBD @0x00000002;
#define PTBD _PTBD.Byte
#define PTBD_PTBD0 _PTBD.Bits.PTBD0
#define PTBD_PTBD1 _PTBD.Bits.PTBD1
#define PTBD_PTBD2 _PTBD.Bits.PTBD2
#define PTBD_PTBD3 _PTBD.Bits.PTBD3
#define PTBD_PTBD4 _PTBD.Bits.PTBD4
#define PTBD_PTBD5 _PTBD.Bits.PTBD5
#define PTBD_PTBD6 _PTBD.Bits.PTBD6
#define PTBD_PTBD7 _PTBD.Bits.PTBD7
#define PTBD_PTBD0_MASK 1
#define PTBD_PTBD1_MASK 2
#define PTBD_PTBD2_MASK 4
#define PTBD_PTBD3_MASK 8
#define PTBD_PTBD4_MASK 16
#define PTBD_PTBD5_MASK 32
#define PTBD_PTBD6_MASK 64
#define PTBD_PTBD7_MASK 128
/*** PTBDD - Data Direction Register B; 0x00000003 ***/
typedef union {
byte Byte;
struct {
byte PTBDD0 :1; /* Data Direction for Port B Bit 0 */
byte PTBDD1 :1; /* Data Direction for Port B Bit 1 */
byte PTBDD2 :1; /* Data Direction for Port B Bit 2 */
byte PTBDD3 :1; /* Data Direction for Port B Bit 3 */
byte PTBDD4 :1; /* Data Direction for Port B Bit 4 */
byte PTBDD5 :1; /* Data Direction for Port B Bit 5 */
byte PTBDD6 :1; /* Data Direction for Port B Bit 6 */
byte PTBDD7 :1; /* Data Direction for Port B Bit 7 */
} Bits;
} PTBDDSTR;
extern volatile PTBDDSTR _PTBDD @0x00000003;
#define PTBDD _PTBDD.Byte
#define PTBDD_PTBDD0 _PTBDD.Bits.PTBDD0
#define PTBDD_PTBDD1 _PTBDD.Bits.PTBDD1
#define PTBDD_PTBDD2 _PTBDD.Bits.PTBDD2
#define PTBDD_PTBDD3 _PTBDD.Bits.PTBDD3
#define PTBDD_PTBDD4 _PTBDD.Bits.PTBDD4
#define PTBDD_PTBDD5 _PTBDD.Bits.PTBDD5
#define PTBDD_PTBDD6 _PTBDD.Bits.PTBDD6
#define PTBDD_PTBDD7 _PTBDD.Bits.PTBDD7
#define PTBDD_PTBDD0_MASK 1
#define PTBDD_PTBDD1_MASK 2
#define PTBDD_PTBDD2_MASK 4
#define PTBDD_PTBDD3_MASK 8
#define PTBDD_PTBDD4_MASK 16
#define PTBDD_PTBDD5_MASK 32
#define PTBDD_PTBDD6_MASK 64
#define PTBDD_PTBDD7_MASK 128
/*** PTCD - Port C Data Register; 0x00000004 ***/
typedef union {
byte Byte;
struct {
byte PTCD0 :1; /* Port C Data Register Bit 0 */
byte PTCD1 :1; /* Port C Data Register Bit 1 */
byte PTCD2 :1; /* Port C Data Register Bit 2 */
byte PTCD3 :1; /* Port C Data Register Bit 3 */
byte PTCD4 :1; /* Port C Data Register Bit 4 */
byte PTCD5 :1; /* Port C Data Register Bit 5 */
byte PTCD6 :1; /* Port C Data Register Bit 6 */
byte PTCD7 :1; /* Port C Data Register Bit 7 */
} Bits;
} PTCDSTR;
extern volatile PTCDSTR _PTCD @0x00000004;
#define PTCD _PTCD.Byte
#define PTCD_PTCD0 _PTCD.Bits.PTCD0
#define PTCD_PTCD1 _PTCD.Bits.PTCD1
#define PTCD_PTCD2 _PTCD.Bits.PTCD2
#define PTCD_PTCD3 _PTCD.Bits.PTCD3
#define PTCD_PTCD4 _PTCD.Bits.PTCD4
#define PTCD_PTCD5 _PTCD.Bits.PTCD5
#define PTCD_PTCD6 _PTCD.Bits.PTCD6
#define PTCD_PTCD7 _PTCD.Bits.PTCD7
#define PTCD_PTCD0_MASK 1
#define PTCD_PTCD1_MASK 2
#define PTCD_PTCD2_MASK 4
#define PTCD_PTCD3_MASK 8
#define PTCD_PTCD4_MASK 16
#define PTCD_PTCD5_MASK 32
#define PTCD_PTCD6_MASK 64
#define PTCD_PTCD7_MASK 128
/*** PTCDD - Data Direction Register C; 0x00000005 ***/
typedef union {
byte Byte;
struct {
byte PTCDD0 :1; /* Data Direction for Port C Bit 0 */
byte PTCDD1 :1; /* Data Direction for Port C Bit 1 */
byte PTCDD2 :1; /* Data Direction for Port C Bit 2 */
byte PTCDD3 :1; /* Data Direction for Port C Bit 3 */
byte PTCDD4 :1; /* Data Direction for Port C Bit 4 */
byte PTCDD5 :1; /* Data Direction for Port C Bit 5 */
byte PTCDD6 :1; /* Data Direction for Port C Bit 6 */
byte PTCDD7 :1; /* Data Direction for Port C Bit 7 */
} Bits;
} PTCDDSTR;
extern volatile PTCDDSTR _PTCDD @0x00000005;
#define PTCDD _PTCDD.Byte
#define PTCDD_PTCDD0 _PTCDD.Bits.PTCDD0
#define PTCDD_PTCDD1 _PTCDD.Bits.PTCDD1
#define PTCDD_PTCDD2 _PTCDD.Bits.PTCDD2
#define PTCDD_PTCDD3 _PTCDD.Bits.PTCDD3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -