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

📄 bus_io.h

📁 mstar 776 开发的车载dvd
💻 H
字号:
/*
                              MStar Debug Code
                             ------------------

        Copyright 2003 MStar Semiconductors Limited,
        All rights are reserved. Reproduction in whole or in part is prohibited
        without the prior written consent of the copyright owner.

        COMPANY CONFIDENTIAL

        Filename : bus_io.h


Rev     Date        Author          Comments
-------------------------------------------------------------------------------
001     2003-03-31  Sanger Huang    Initial Version

@begin
@module
        bus_io.h
        Header file for the BUS IO module.
@end
*/

#ifndef BUS_IO_H
#define BUS_IO_H


/********************
* INCLUDE FILES     *
*********************/

/********************
* LOCAL MACROS      *
*********************/
// Define Scaler Reset Pin
#define HW_RESET    P17

// Define Scaler Nibble Direct bus I/O Pin
#define NDBUS_ALE   P32
#define NDBUS_RD    P37
#define NDBUS_WR    P36
#define NDBUS_DATA  P0


/**********************
* FUNCTION PROTOTYPES *
***********************/

void Bus_Initial(void);

//#ifdef DIRECT_BUS
#ifdef    MFC_SIM
void SetReg(BYTE bus_addr, BYTE bus_data);
BYTE GetReg(BYTE bus_addr);
#else
//extern  xdata BYTE volatile regio[];
  #define SetReg(bus_addr, bus_data)     XBYTE[bus_addr] = bus_data
  #define GetReg(bus_addr)                XBYTE[bus_addr]  
#endif
//#else
//  void SetReg(BYTE bus_addr, BYTE bus_data);
//    BYTE GetReg(BYTE bus_addr);
//#endif

//void SeqSetReg(BYTE bus_addr, BYTE addr_inc, WORD data_size, BYTE code *data_array);
#if 1
#define SetReg2(offset, value)                          \
        XBYTE[offset] = (BYTE)((WORD)(value));            \
        XBYTE[offset+1] = (BYTE)((WORD)(value)>>8);

#define SetReg2_LowAct(offset, value)                   \
        XBYTE[offset+1] = (BYTE)((WORD)(value)>>8);       \
        XBYTE[offset] = (BYTE)((WORD)(value));

#define GetReg2(offset) ((WORD)XBYTE[offset] + (((WORD)XBYTE[offset+1])<<8))

#define SetReg3(offset, value)                          \
        XBYTE[offset] = (BYTE)((DWORD)(value));           \
        XBYTE[offset+1] = (BYTE)((DWORD)(value)>>8);      \
        XBYTE[offset+2] = (BYTE)((DWORD)(value)>>16);

#define GetReg3(offset)                         \
        (((DWORD)XBYTE[offset]) +              \
         (((DWORD)XBYTE[offset+1])<<8) +       \
         (((DWORD)XBYTE[offset+2])<<16))

#else
void SetReg2(BYTE offset, WORD value);
void SetReg2_LowAct(BYTE offset, WORD value);
WORD GetReg2(BYTE offset);
void SetReg3(BYTE offset, DWORD value);
DWORD GetReg3(BYTE offset);
#endif
BYTE DMAGetByte(BYTE address);


#endif  // bus_io.h

⌨️ 快捷键说明

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