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

📄 xgate.h.keep

📁 freescale最新的16位单片机
💻 KEEP
字号:

#ifndef __XGATE_H_
#define __XGATE_H_

#pragma DATA_SEG  XGATE_VAR_INIT
extern volatile int PVISU  ;//= (int)__SEG_START_XGATE_DATAVISU ;// : (offset 0)  dynamic RAM visu pointer 
extern volatile int CBLOC ;//: (offset 2) block counter (00 - 01 - 10 - 11)
extern volatile int CLINE ;//: (offset 4) line counter in a block of 60 lines
extern volatile int CPSV  ;//: (offset 6) line counter for vertical synchro duration 
extern volatile int PVISU0  ;//: (offset 8) start address of RAM visu buffer 
extern volatile int REV;
extern volatile int VSYN_CNT;//CPSV2;
extern volatile int CLS_CNT;
extern volatile int CURRENT_BLOCK_MAX_LINE;
extern volatile int LAST_BLOCK_MAX_LINE;
#pragma DATA_SEG  DEFAULT


// TFT Size
#define NB_PIXELS_PER_LINES 240
#define NB_LINES  320
#define NB_PIXELS_PER_WORD 1 //2 
#define IMAGE_SIZE 76800 // NB_PIXELS_PER_LINES*NB_LINES



#define NB_WORDS_PER_LINES (NB_PIXELS_PER_LINES / NB_PIXELS_PER_WORD)

//#define NB_BLOCK_PER_SCREEN  10 // 
//#define NB_LINES_PER_BLOCK 2 // (NB_LINES / NB_BLOCK_PER_SCREEN)
 

 //                        R   G  B
#define BLACK   0x00  // 000 00 000
#define RED     0xE0	// 111 00 000
#define GREEN   0x18  // 000 11 000
#define BLUE    0x07  // 000 00 111
#define YELLOW  0xDC  // 110 11 100
#define WHITE   0xFF  // 111 11 111

extern const unsigned char Anim_ref[3200];
#pragma push
#pragma CONST_SEG __GPAGE_SEG MyBankedConst
extern const unsigned char Screen_Array_IN_ROM[76800];
#pragma pop

#pragma push
#pragma CONST_SEG __GPAGE_SEG MyAnimConst_EC
extern const unsigned char S12Animation_EC[0x3FFF];
#pragma pop
////////////////////////////////////////////////////////
#pragma push
#pragma CONST_SEG __GPAGE_SEG MyAnimConst_ED
extern const unsigned char S12Animation_ED[0x3FFF];
#pragma pop

#pragma push
#pragma CONST_SEG __GPAGE_SEG MyAnimConst_EE
extern const unsigned char S12Animation_EE[0x3FFF];
#pragma pop

#pragma push
#pragma CONST_SEG __GPAGE_SEG MyAnimConst_EF
extern const unsigned char S12Animation_EF[0x3FFF];
#pragma pop

#pragma push
#pragma CONST_SEG __GPAGE_SEG MyAnimConst_F0
extern const unsigned char S12Animation_F0[0x3FFF];
#pragma pop


#pragma push
#pragma CONST_SEG __GPAGE_SEG MyAnimConst_F1
extern const unsigned char S12Animation_F1[0x3FFF];
#pragma pop

#pragma push
#pragma DATA_SEG __GPAGE_SEG XGATE_DATA_SCREEN
// ROM to RAM Memory Transfer partitionning
//extern unsigned char Screen_Array_in_RAM[2*NB_LINES_PER_BLOCK*NB_WORDS_PER_LINES]; //2 Blocks 
extern unsigned char Screen_Array_in_RAM[2*4096]; //SMALL 12288 =3*4096 Blocks 


#define MAX_CARACT 19
struct Character{
        unsigned char Status  ;
        unsigned int *Letter_Offset ;  
        unsigned char Color  ;  
        unsigned char OriginPosX ;        
        unsigned int OriginPosY ;      
} ;
extern struct Character Message[MAX_CARACT];

#define NUMBER_OF_BLOCK 19 //IMAGE_SIZE/PIXEL_PER_BLOCK

#define MAX_STRUCT_SIZE NUMBER_OF_BLOCK+1
typedef struct {
        unsigned int source_addr;  // source address
        unsigned char dest_rpage; // ram_page
        unsigned int length1;
        unsigned char source_ppage1;
        unsigned char source_ppage2;
        unsigned int length2;
}Rom_Bank ;

extern Rom_Bank Bank[MAX_STRUCT_SIZE];


enum BankOffset {
   	 source_addr_offset = offsetof(Rom_Bank, source_addr) ,
   	 dest_rpage_offset = offsetof(Rom_Bank, dest_rpage) ,
   	 length1_offset = offsetof(Rom_Bank, length1) ,
   	 source_ppage1_offset = offsetof(Rom_Bank, source_ppage1), 
   	 source_ppage2_offset = offsetof(Rom_Bank, source_ppage2), 
   	 length2_offset = offsetof(Rom_Bank, length2)

 }; 


typedef struct {
        unsigned int source_addr;  // source address
        unsigned char dest_rpage; // ram_page
        unsigned int length1;
        unsigned int current_size;
        unsigned char source_ppage1;
        unsigned int dest_Offset;
        
//        unsigned char source_ppage2;
//        unsigned int length2;
}Anim_Bank ;

extern Anim_Bank BankAnim[40];


enum BankAnimOffset {
   	 source_addr_offset2 = offsetof(Anim_Bank, source_addr) ,
   	 dest_rpage_offset2 = offsetof(Anim_Bank, dest_rpage) ,
   	 length1_offset2 = offsetof(Anim_Bank, length1) ,
   	 current_size_offset2 = offsetof(Anim_Bank, current_size) ,
   	 source_ppage1_offset2 = offsetof(Anim_Bank, source_ppage1), 
     dest_Offset2_offset2 = offsetof(Anim_Bank, dest_Offset), 
//   	 source_ppage2_offset2 = offsetof(Anim_Bank, source_ppage2), 
//   	 length2_offset2 = offsetof(Anim_Bank, length2)

 };

extern unsigned char Image_Number		;

#pragma pop
void InitChar(void); 
void ScreenUpdate(unsigned char);


/* XGATE vector table */
typedef void (*_NEAR XGATE_Function)(int);
typedef struct {
  XGATE_Function pc;        /* pointer to the handler */
  int dataptr;              /* pointer to the data of the handler */
} XGATE_TableEntry;

#pragma push
#pragma CONST_SEG __GPAGE_SEG XGATE_CONST  /* for the HCS12X/XGATE shared setup, the XGATE constants must be in RAM. */
#define XGATE_VECTOR_OFFSET 0
extern const XGATE_TableEntry XGATE_VectorTable[];
#pragma pop



 #endif /* __XGATE_H_ */

⌨️ 快捷键说明

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