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

📄 class.h

📁 USB中文数据说明
💻 H
字号:
#include <LPC213xDEF.H>	//ARM菜鸟HotPower创建定义文件(最新为情人节修改版)

#pragma arm
extern "C" void __swi(8) Enable_IRQ(void);
extern "C" void __SWI_8			   (void) {
int tmp;
  __asm
  {
    MRS tmp, SPSR
    BIC tmp, tmp, #0x80
    MSR SPSR_c, tmp
  }
}

#pragma arm
extern "C" void __swi(9) Disable_IRQ(void);
extern "C" void __SWI_9			   (void) {
int tmp;
  __asm
  {
    MRS tmp, SPSR
    ORR tmp, tmp, #0x80
    MSR SPSR_c, tmp
  }
}



class SystemObj;//系统类
class LedObj;//系统类
class LcdObj;//系统显示菜单类
class RtcObj;//系统实时钟类
class UartObj;//系统串口类
class TwiObj;   //系统通讯类
class IapObj;   //系统类


class SystemObj {//系统类
public:
  SystemObj(void);//SystemObj的构造函数
public:
  void SystemInit(void);
  void VicIntSetup(void);
  void Timer0Init(void);
  void LedInit(void);
  void BeepInit(void);
  void WdtInit(void);
public:
  volatile unsigned int SystemRamTest;//RAM掉电测试变量
private:
};


class LedObj {//SSP类
public:
  LedObj(void);//SSPObj的构造函数
public:
  void LedInit(void);
public:
  void LedDisplay(unsigned char);
private:
};


class LcdObj {//系统显示菜单类
public:
  LcdObj(void);//LcdObj的构造函数
public:
  void LcdInit(void);
  void LcdSpiInit(void);
  void LcdSend(char);
  void LcdSendCommand(char); 
  void LcdSendData(char); 
  void SetLcdDisplayPos(unsigned char, unsigned char);
  void LcdDisplayBuffer(void);//刷新LCD显示缓冲区
private:
  void LcdClearBuffer(void);
public:
  unsigned char LcdRow,LcdCol;
  void LcdDisplay(const char *);
public:
  unsigned char LcdTimeCount;
private:
  unsigned char LcdRowWriteEnable[4];
  unsigned char LcdBuffer[4][17];//4行8个汉字17个字符
};

class RtcObj{//实时种类
public:
  RtcObj(void);//RtcObj的构造函数
  unsigned int GetDow(unsigned int, unsigned int, unsigned int);
  unsigned int GetDom(unsigned int, unsigned int);
private:
  void RtcInit(void);
public:
  unsigned int Year, Month, Dom, Dow;
  unsigned int Hour, Min, Sec;
};

class UartObj {//系统串口类
public:
  UartObj(void);
public:
  void UartInit(void);
  void putchar(unsigned char); 
  void putstr(const char []);
  void puts(const char []);
  void Exec(void);
  void LoadDataBuff(void);
public:
  volatile unsigned char Status;
  volatile unsigned char RxBuffer[256], TxBuffer[256];
  volatile unsigned char RxCount, TxCount;
  volatile unsigned char RxdCount, TxdCount;
};


class TwiObj {//系统通讯类
public:
  TwiObj(void);
private:
  void TwiInit(void);
public:
  void TWStart(void);
  void TWREStart(void);
  void TWStop(void);
  void TWExit(void);
  void Exec(void);
  void WorkExec(void);
  void TWByteWrite(unsigned int, unsigned int);
  void TWByteRead(unsigned int, unsigned int);
public:
  volatile bool Busy;
  volatile unsigned int Status;
  volatile unsigned int Count; 
  volatile unsigned char MainCount, SubCount; 
  volatile unsigned char SubAddr;
  volatile unsigned char MainComm, SubComm;
  volatile unsigned char TxBuffer[16], RxBuffer[16];//接收数据缓冲区
};


/*
typedef struct _LPCS_FLASHBUFF {
  LPC_REG DATA[30 * 1024 / 4]; //0x00008000~0x0000FFFF
  LPC_REG COUNT[ 2 * 1024 / 4];//0x00008000~0x0000FFFF
}LPCS_FLASHBUFF, *LPCPS_FLASHBUFF;

#define LPC_BASE_FLASHBUFF  ((LPCPS_FLASHBUFF)  0x00008000)//定义硬件结构指针(硬件地址)
const LPCPS_FLASHBUFF FLASHIAP = LPC_BASE_FLASHBUFF;//定义全局结构指针变量FLASHIAP
*/

extern "C" void iap_execute (LPCS_IAPDATA &);


class IapObj {//系统类
public:
  IapObj(void);
private: 
  void IapInit(void);
  void IapWriteTest(void);
public:
  LPCS_IAPDATA IAPDR;
  bool IapExec(void);
public:
  unsigned int GetSecNum(void *);
  bool SelSector(void *, void *);
  bool EraseSector(void *, void *);
  bool ProgramPage(void *, void *, unsigned int);
};

__noinit__ SystemObj Sys_;//系统类
__noinit__ LcdObj Lcd_;//系统显示菜单类
__noinit__ LedObj Led_;//系统显示菜单类
__noinit__ RtcObj Rtc_;//系统实时钟类
__noinit__ UartObj Uart;//系统串口类
__noinit__ TwiObj Twi;//系统通讯类
__noinit__ IapObj Iap;

//__noinit__ KeyObj Key;   //键盘类
__noinit__ volatile unsigned int SystemRamTest;


⌨️ 快捷键说明

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