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

📄 int.h

📁 在51上运行的小的OS系统
💻 H
字号:
#ifndef _INT_H
#define _INT_H

#ifdef INT_GLOBAL
#define INT_EXT 
#else
#define INT_EXT extern
#endif

void T1_Ini(void);
void Timer1_Exception(void);

void SPI1_Init(void);
void SPI1_Exception(void);
#define TIME_1MS (Fpclk/1000)
#define SPI1_CPSDVSR 64
#define SPI1_CLK (Fpclk/SPI1_CPSDVSR)
#define StartSPI1()  {SSPIMSC = 1<<3; T1MR3=T1TC+SPI1_CPSDVSR*8*16;T1MCR|=(1<<9);}
#define DisableSPI1Interrupt()  {SSPIMSC = 0;}

#define SPI1_SSEL_PIN (1<<20)
#define Set0SPI1SSEL() IO0CLR = SPI1_SSEL_PIN
#define Set1SPI1SSEL() IO0SET = SPI1_SSEL_PIN

enum{
    SPI1_IDLE,
    SPI_ERROR,

    SPI1_TX,
    SPI1_INSTRUCTION_TX,
    SPI1_DATA_TX,
    SPI1_TX_OK
};

typedef struct {
    
    volatile uint8 Point;
    volatile uint8 Count;
    volatile uint8 Mode;
    volatile uint8 Timer;
    volatile uint8 AddressCnt;
    //volatile uint8 Busy;
    //volatile uint8 LCD_A0;// Data or Instruction
    uint8 const*  Ptr_Buff;
    uint8 Buff[32];
}SPI1_DATA_TYPE;

INT_EXT SPI1_DATA_TYPE SPI1Data;



void SPI0_Init(void);
void SPI0_Exception(void);
#define SPI_INT_ID    10
#define SetSPISoftInt() (VICSoftInt = 1<<SPI_INT_ID)
#define StartSPI()        SetSPISoftInt()
#define ClrSPISoftInt() VICSoftIntClear = 1 << SPI_INT_ID
#define Set1SPI0SSEL() (IO0SET = 1 << 8)
#define Set0SPI0SSEL() (IO0CLR = 1 << 8)
#define    SPI_DATA_MAX    (128+4+2)
typedef struct{    
    uint8    Point;
    volatile uint8    Mode;
    volatile uint8  Timer;
    volatile uint8    Busy;
    uint16    Count;
    WordChar Check;
	uint8 * ptrBuff;
    uint8    Buff[SPI_DATA_MAX];
//    uint8 MBuff[20];    //Master read write buffer
}SPIDATA_TYPE;
INT_EXT    SPIDATA_TYPE    SPI0Data;
enum{
    SPI0_Idle        = 0,
    SPI0FlashMode    = 1<<6,
    SPI0_Flash_RW,
    SPI0RF,                        //SPI0ReadFLShMode
    SPI0WF,
    SPI0_FLASH_BUSY,
    SPI0_Flash_OK,
    SPI0_410M        = 2<<6,        //SPI0Mast410Mode
    SPI0_410MR,                    //SPI0MasterRead410Mode
    SPI0_410MW,
    SPI0_410MW_Check1,
    SPI0_410MW_Check2,
    SPI0_410M_OK,
    SPI0_410I        = 3<<6,        //Intmode
    SPI0_410IR,
    SPI0_410IR1,
    SPI0_410IR2,
    SPI0_410IR_Check1,
    SPI0_410IR_Check2,
    sPI0_410IW,
    SPI0_410I_OK,
    SPI0_ERR
};
#endif

⌨️ 快捷键说明

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