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

📄 s12_byteflight.h

📁 PWM Generation Using HCS12 Timer Channels
💻 H
字号:
/*****************************************************************************/
/*                                             COPYRIGHT (c) MOTOROLA 2002   */
/*                                                                           */
/* File Name        :    $RCSfile: s12_byteflight.h,v $                      */
/*                                                                           */
/* Current Revision :    $Revision: 1.2 $									 */
/*                                                                           */
/* PURPOSE: header file for HCS12 Byteflight block 				 	    	 */


#ifndef S12_BYTEFLIGHT_H		/*prevent duplicated includes*/
#define S12_BYTEFLIGHT_H

#ifndef S12_COMMON_H		/*prevent duplicated includes*/
#include "s12_common.h"
#endif

typedef union uBFMCR
  {
  tU08	byte;
  struct
  	{
  	tU08 initak	:1;		/*Initialization acknowledge*/
  	tU08 sswai	:1;		/*Stops in Wait Mode*/
  	tU08 wpulse	:1;		/*Wake Up Pulses*/
  	tU08 slprq	:1;		/*Sleep Request*/
  	tU08 slpak	:1;		/*Sleep Acknowledge*/
  	tU08 alarm	:1;		/*Master Alarm Pulses*/
  	tU08 master :1;		/*Master Select*/
  	tU08 initrq :1;		/*Initialization request*/
  	}bit;
  }tBFMCR;
  
#define INITAK	0x01	/*bit masks	*/
#define SSWAI	0x02
#define WPULSE	0x04
#define SLPREQ	0x08
#define SLPACK	0x10
#define ALARM	0x20
#define MASTER	0x40
#define INITREQ	0x80

typedef union uBFFSIZR
  {
  tU08	byte;
  struct
  	{
  	tU08 fsize	:5;		/* FIFO size Bits*/
  	tU08 		:1;		/*not used*/
  	tU08 		:1;		/*not used*/
  	tU08 		:1;		/*not used*/
  	}bit;
  }tBFFSIZR;
  
#define FSIZ0	0x01	/*bit masks	*/
#define FSIZ1	0x02
#define FSIZ2	0x04
#define FSIZ3	0x08
#define FSIZ4	0x10

typedef union uBFIDX
  {
  tU08	byte;
  struct
  	{
  	tU08 putidx	:4;		/* Put index bits*/
  	tU08 getidx	:4;		/* Put index bits*/
   	}bit;
  }tBFIDX;
  
#define PUTIDX0	0x01	/*bit masks	*/
#define PUTIDX1	0x02
#define PUTIDX2	0x04
#define PUTIDX3	0x08
#define GETIDX0	0x10
#define GETIDX1	0x20
#define GETIDX2	0x40
#define GETIDX3	0x80

typedef union uBFRISR
  {
  tU08	byte;
  struct
  	{
  	tU08 optdf	:1;		/*Optical diagnosis flag*/
  	tU08 xsynif	:1;		/*Xsync pulse interrupt flag*/
  	tU08 		:1;		/*not used*/
  	tU08 slmmif	:1;		/*Slot mismatch interrupt flag*/
  	tU08 synnif :1;		/*Sync normal pulse interrupt flag*/
  	tU08 synaif :1;		/*Sync Alarm pulse interrupt flag*/
  	tU08 rxif	:1;		/*Receive interrupt flag*/
  	tU08 rcvfif	:1;		/*Receive FIFO not empty interrupt flag*/
   	}bit;
  }tBFRISR;
  
#define OPTDF	0x01	/*bit masks	*/
#define XSYNIF	0x02
#define SLMMIF	0x08
#define SYNNIF	0x10
#define SYNAIF	0x20
#define RXIF	0x40
#define RCVFIF	0x80

typedef union uBFGISR
  {
  tU08	byte;
  struct
  	{
  	tU08 wakeif	:1;		/*Wake up interrupt flag*/
  	tU08 lockif	:1;		/*Locking error interrupt flag*/
  	tU08 illpif :1;		/*Illegal pulse error interrupt flag*/
  	tU08 synlif	:1;		/*Sync pulse lost interrupt flag*/
  	tU08 syneif :1;		/*Sync pulse too early interrupt flag*/
  	tU08 errif	:1;		/*Message format error interrupt flag*/
  	tU08 ovrnif	:1;		/*Receive FIFO overrun interrupt flag*/
  	tU08 txif	:1;		/*Transmit interrupt flag*/
   	}bit;
  }tBFGISR;
  
#define WAKEIF	0x01	/*bit masks	*/
#define LCKIF	0x02
#define ILLPIF	0x04
#define SYNLIF	0x08
#define SYNEIF	0x10
#define ERRIF	0x20
#define OVRNIF	0x40
#define TXIF	0x80

typedef union uBFRIER
  {
  tU08	byte;
  struct
  	{
  	tU08 		:1;		/*NOT USED*/
  	tU08 xsynie	:1;		/*Xsync pulse interrupt enable*/
  	tU08 		:1;		/*not used*/
  	tU08 slmmie	:1;		/*Slot mismatch interrupt enable*/
  	tU08 synnie :1;		/*Sync normal pulse interrupt enable*/
  	tU08 synaie :1;		/*Sync Alarm pulse interrupt enable*/
  	tU08 rxie	:1;		/*Receive interrupt enable*/
  	tU08 rcvfie	:1;		/*Receive FIFO not empty interrupt enable*/
   	}bit;
  }tBFRIER;
  
#define XSYNIE	0x02	/*bit masks	*/
#define SLMMIE	0x08
#define SYNNIE	0x10
#define SYNAIE	0x20
#define RXIE	0x40
#define RCVFIE	0x80

typedef union uBFGIER
  {
  tU08	byte;
  struct
  	{
  	tU08 wakeie	:1;		/*Wake up interrupt enable*/
  	tU08 lockie	:1;		/*Locking error interrupt enable*/
  	tU08 illpie :1;		/*Illegal pulse error interrupt enable*/
  	tU08 synlie	:1;		/*Sync pulse lost interrupt enable*/
  	tU08 syneie :1;		/*Sync pulse too early interrupt enable*/
  	tU08 errie	:1;		/*Message format error interrupt enable*/
  	tU08 ovrnie	:1;		/*Receive FIFO overrun interrupt enable*/
  	tU08 txie	:1;		/*Transmit interrupt enable*/
   	}bit;
  }tBFGIER;
  
#define WAKEIE	0x01	/*bit masks	*/
#define LOCKIE	0x02
#define ILLPIE	0x04
#define SYNLIE	0x08
#define SYNEIE	0x10
#define ERRIE	0x20
#define OVRNIE	0x40
#define TXIE	0x80

typedef union uBFRIVEC
  {
  tU08	byte;
  struct
  	{
  	tU08 rivec	:4;		/*Receive Vector bits*/
  	tU08 		:4;		/*not used*/
   	}bit;
  }tBFRIVEC;
  
#define RIVEC0	0x01	/*bit masks	*/
#define RIVEC1	0x02
#define RIVEC2	0x04
#define RIVEC3	0x08

typedef union uBFTIVEC
  {
  tU08	byte;
  struct
  	{
  	tU08 tivec	:4;		/*Transmit Vector bits*/
  	tU08 		:4;		/*not used*/
   	}bit;
  }tBFTIVEC;
  
#define TIVEC0	0x01	/*bit masks	*/
#define TIVEC1	0x02
#define TIVEC2	0x04
#define TIVEC3	0x08

typedef union uBFFIDAC
  {
  tU08	byte;
  struct
  	{
  	tU08 fidac0	:1;		/*FIFO identification acceptance bits*/
  	tU08 fidac1	:1;
  	tU08 fidac2	:1;
  	tU08 fidac3	:1;
  	tU08 fidac4	:1;
  	tU08 fidac5	:1;
  	tU08 fidac6	:1;
  	tU08 fidac7	:1;
   	}bit;
  }tBFFIDAC;
  
#define FIDAC0	0x01	/*bit masks	*/
#define FIDAC1	0x02
#define FIDAC2	0x04
#define FIDAC3	0x08
#define FIDAC4	0x10
#define FIDAC5	0x20
#define FIDAC6	0x40
#define FIDAC7	0x80

typedef union uBFFIDMR
  {
  tU08	byte;
  struct
  	{
  	tU08 fidmr0 :1;		/*FIFO identification mask bits*/
   	tU08 fidmr1	:1;		
   	tU08 fidmr2	:1;		
   	tU08 fidmr3	:1;		
   	tU08 fidmr4	:1;		
   	tU08 fidmr5	:1;		
   	tU08 fidmr6	:1;		
   	tU08 fidmr7	:1;		
   	}bit;
  }tBFFIDMR;
  
#define FIDMR0	0x01	/*bit masks	*/
#define FIDMR1	0x02
#define FIDMR2	0x04
#define FIDMR3	0x08
#define FIDMR4	0x10
#define FIDMR5	0x20
#define FIDMR6	0x40
#define FIDMR7	0x80

typedef union uBFPCTLBF
  {
  tU08	byte;
  struct
  	{
  	tU08 bfen	:1;		/*Byteflight enable*/
  	tU08 		:1;		/*not used*/
  	tU08 psynen	:1;		/*sync pulse ok enable*/
  	tU08 proken	:1;		/*reception ok enable*/
  	tU08 perren	:1;		/*error pulse enable*/
  	tU08 pslmen	:1;		/*slot mismatch enable*/
  	tU08 		:1;		/*not used*/
  	tU08 pmeren	:1;		/*slot mismatch error enable*/
   	}bit;
  }tBFPCTLBF;
  
#define BFEN	0x01	/*bit masks	*/
#define PSYNEN	0x04
#define PROKEN	0x08
#define PERREN	0x10
#define PSLMEN	0x20
#define PMEREN	0x80

typedef union uBFBUFLOCK
  {
  tU08	byte;
  struct
  	{
  	tU08 rxbuflock	:1;		/*RX buffer locked*/
  	tU08 txbuflock	:1;		/*TX buffer locked*/
  	tU08 			:6;		/*not used*/
   	}bit;
  }tBFBUFLOCK;
  
#define RXBUFLOCK	0x01	/*bit masks	*/
#define TXBUFLOCK	0x02

typedef union uBFFIDRJ
  {
  tU08	byte;
  struct
  	{
  	tU08 fidrj0	:1;		/*FIFO identification rejection bits*/
   	tU08 fidrj1	:1;
   	tU08 fidrj2	:1;
   	tU08 fidrj3	:1;
   	tU08 fidrj4	:1;
   	tU08 fidrj5	:1;
   	tU08 fidrj6	:1;
   	tU08 fidrj7	:1;
   	}bit;
  }tBFFIDRJ;
  
#define FIDRJ0	0x01	/*bit masks	*/
#define FIDRJ1	0x02
#define FIDRJ2	0x04
#define FIDRJ3	0x08
#define FIDRJ4	0x10
#define FIDRJ5	0x20
#define FIDRJ6	0x40
#define FIDRJ7	0x80

typedef union uBFFIDRMR
  {
  tU08	byte;
  struct
  	{
  	tU08 fidrmr0	:1;		/*FIFO identification mask bits*/
   	tU08 fidrmr1	:1;
   	tU08 fidrmr2	:1;
   	tU08 fidrmr3	:1;
   	tU08 fidrmr4	:1;
   	tU08 fidrmr5	:1;
   	tU08 fidrmr6	:1;
   	tU08 fidrmr7	:1;
   	}bit;
  }tBFFIDRMR;
  
#define FIDRMR0		0x01	/*bit masks	*/
#define FIDRMR1		0x02
#define FIDRMR2		0x04
#define FIDRMR3		0x08
#define FIDRMR4		0x10
#define FIDRMR5		0x20
#define FIDRMR6		0x40
#define FIDRMR7		0x80

typedef union uBFTLEN
  {
  tU08	byte;
  struct
  	{
  	tU08 tlen	:4;		/*Transmit data length bits*/
  	tU08		:4;		/*not used*/
   	}bit;
  }tBFTLEN;
  
#define TLEN0	0x01	/*bit masks	*/
#define TLEN1	0x02
#define TLEN2	0x04
#define TLEN3	0x08

typedef union uBFRLEN
  {
  tU08	byte;
  struct
  	{
  	tU08 rlen	:4;		/*Receive data length bits*/
  	tU08		:4;		/*not used*/
   	}bit;
  }tBFRLEN;
  
#define RLEN0	0x01	/*bit masks	*/
#define RLEN1	0x02
#define RLEN2	0x04
#define RLEN3	0x08

typedef union uBFFLEN
  {
  tU08	byte;
  struct
  	{
  	tU08 flen	:4;		/*Receive FIFO data length bits*/
  	tU08		:4;		/*not used*/
   	}bit;
  }tBFFLEN;
  
#define FLEN0	0x01	/*bit masks	*/
#define FLEN1	0x02
#define FLEN2	0x04
#define FLEN3	0x08

typedef union uBFBUFCTL
  {
  tU08	byte;
  struct
  	{
  	tU08 cfg	:1;		/*message buffer configuration bit*/
  	tU08 		:2;		/*not used*/
  	tU08 abtrq	:1;		/*abort request*/
  	tU08 abtak	:1;		/*abort acknowledge*/
  	tU08 lock	:1;		/*message buffer lock*/
  	tU08 iena	:1;		/*interrupt enable bit*/
  	tU08 iflg	:1;		/*interrupt status flag*/
   	}bit;
  }tBFBUFCTL;
  
#define CFG		0x01	/*bit masks	*/
#define ABTRQ	0x08
#define ABTAK	0x10
#define LCK		0x20
#define IENA	0x40
#define IFLG	0x80

  
typedef struct
  {
  volatile tBFMCR		bfmcr;			/*module configuration register*/
  volatile tBFFSIZR		bffsizr;		/*FIFO size register*/		                   
  volatile tREG08		bftcr1;			/*Time Configuration Register 1*/		                   
  volatile tREG08		bftcr2;			/*Time Configuration Register 2*/		                   
  volatile tREG08		bftcr3;			/*Time Configuration Register 3*/		                   
  volatile tBFIDX		bfidx;			/*Fifo indexe register*/		                   
  volatile tBFRISR		bfrisr;			/*Receive interrupt status register*/		                   
  volatile tBFGISR		bfgisr;			/*General interrupt status register*/		                   
  volatile tBFRIER		bfrier;			/*Receive interrupt enable register*/		                   
  volatile tBFGIER		bfgier;			/*General interrupt enable register*/
  volatile tBFRIVEC		bfrivec;		/*Receive interrupt vector register*/		                   
  volatile tBFTIVEC 	bftivec;		/*Transmit interrupt vector register*/		                   
  volatile tBFFIDAC		bffidac;		/*Fifo identifier acceptance register*/		                   
  volatile tBFFIDMR		bffidmr;		/*Fifo identifier mask register*/		                   
  volatile tREG08		bfmvr;			/*module version register*/		   
  volatile tU08			rsv5;			/*reserved*/                
  volatile tBFPCTLBF 	bfpctlbf;		/*byteflight port control register*/
  volatile tU08 		rsv6;			/*reserved*/		                   
  volatile tBFBUFLOCK 	bfbuflock;  	/*buffer lock register*/
  volatile tU08			rsv;			/*reserved*/	                   
  volatile tBFFIDRJ		bffidrj;		/*Fifo identifier rejection register*/		                   
  volatile tBFFIDRMR 	bffidrmr;		/*Fifo identifier rejection maskr register*/
  volatile tU08			rsv1[10];		/*reserved*/		                   
  volatile tREG08	 	bftident;		/*Transmit identifier register*/		                   
  volatile tBFTLEN		bftlen;			/*Transmit data length register*/		                   
  volatile tREG08		bftdata[12];	/*Transmit data register 11*/		                   
  volatile tU08			rsv2[2];		/*reserved*/		
  volatile tREG08		bfrident;		/*Receive identifier register*/		                   
  volatile tBFRLEN		bfrlen;			/*Receive data length register*/		                   
  volatile tREG08		bfrdata[12];	/*Receive data registers */		                   
  volatile tU08			rsv3[2];		/*reserved*/		
  volatile tREG08		bffident;		/*Receive Fifo identifier register*/		                   
  volatile tBFFLEN		bfflen;			/*Receive Fifo data length register*/		                   
  volatile tREG08		bffdata[12];	/*Receive Fifo data registers */		                   
  volatile tU08			rsv4[2];		/*reserved*/		
  volatile tBFBUFCTL	bfbufctl[16];	/*Message Buffer Control Registers*/ 
  }tBYTEFLIGHT;     		                   
  	                   
          
#endif /*S12_BYTEFLIGHT_H*/

⌨️ 快捷键说明

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