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

📄 class.h

📁 射频芯片nRF905例程
💻 H
字号:
/*--------------------------------------------------------------------------
   ARM菜鸟HotPower  2006.5.31与西安大雁塔菜地

http://blog.21ic.com/blog.asp?name=hotpower

HotPower@126.com
--------------------------------------------------------------------------*/

class SystemObj;//系统类
class UartObj;//系统串口类
class KeyObj;//系统类
class LcdObj;//系统显示菜单类
class RtcObj;//系统实时钟类
class nRFObj;//系统无线类


class SystemObj {//系统类
public:
  SystemObj(void);
public:
  void SystemInit(void);
  void PortInit(void);
  void VicInit(void);
  void BeepInit(void);
  void WdtInit(void);
public:
  volatile unsigned int SystemRamTest;//RAM掉电测试变量
private:
  unsigned char BeepTimeCount;
  unsigned char BeepCount;
  unsigned char BeepMode;
  unsigned char BeepValue;
};


class LcdObj {//系统显示菜单类
public:
  LcdObj(void);//LcdObj的构造函数
public:
  void LcdPinSetup(void);
  void LcdInit(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 *);
  void LcdDisplay(unsigned char [], unsigned int);
  void LcdDisplay(unsigned int, unsigned char, signed char);
public:
  unsigned char LcdTimeCount;
private:
  unsigned char LcdRowWriteEnable[4];
  unsigned char LcdBuffer[4][16];//4行8个汉字16个字符
};

class KeyObj {
public:
  KeyObj(void);
  void Exec(void);//每2.5mS中断调用一次, KeyCount会自动+1
public:
  volatile signed int KeyTest[10];//2.5mS压键计数器
private:
  unsigned char KeyCount;//键盘计数器
  unsigned int KeyBuffer;//键盘缓冲区
private:
  void KeyInit(void);
public:
  void KeyCommandExec(unsigned char);
  unsigned char GetKeyVal(void);
  static void Key00(void);
  static void Key01(void);
  static void Key02(void);
  static void Key03(void);
  static void Key04(void);
  static void Key05(void);
  static void Key06(void);
  static void Key07(void);
  static void Key08(void);
  static void Key09(void);

  static void Key10(void);
  static void Key11(void);
  static void Key12(void);
  static void Key13(void);
  static void Key14(void);
  static void Key15(void);
  static void Key16(void);
  static void Key17(void);
  static void Key18(void);
  static void Key19(void);

  static void Key20(void);
  static void Key21(void);
  static void Key22(void);
  static void Key23(void);
  static void Key24(void);
  static void Key25(void);
  static void Key26(void);
  static void Key27(void);
  static void Key28(void);
  static void Key29(void);
};//键盘模块


class UartObj {//系统串口类
public:
  UartObj(void);
  void UartInit(void);
  void putchar(unsigned char); 
  void putstr(const char []);
  void puts(const char []);
  void puthex(unsigned char);
  void puthex(unsigned short);
  void puthex(signed short);
  void BinToHex(unsigned char, char []);
  void BinToHex(unsigned short, char []);
  void BinToHex(signed short, char []);
public:
  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;
  bool TxBusy;
};


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

  unsigned int WorkYear[4][3], WorkMonth[4][3], WorkDom[4][3];
  unsigned int WorkHour[4][3], WorkMin[4][3], WorkSec[4][3];
};

class nRFObj{//系统无线类
public:
  nRFObj(void);//nRFObj的构造函数
private:
  void nRFInit(void);
  void SpiInit(void);
  unsigned char SpiReadWrite(unsigned char);
  unsigned char ReadStatus(void);
  void WritenRFConfig(unsigned int);//配置nRF905
public:
  void SetRxMode(void);//设置接收模式
  void SetTxMode(void);//设置发送模式
  void StartTx(void);
  void nRFReadBuffers(void);//收发无线读写模块
  void nRFWriteBuffers(void);//收发无线读写模块
public:
  unsigned char nRFRxBuff[32], nRFTxBuff[32];
  unsigned char nRFRxCount, nRFTxCount;
};

__noinit__ SystemObj Sys;//整个类成员变量不初始化为0,注意单个不行
__noinit__ LcdObj Lcd;//系统显示菜单类
__noinit__ nRFObj nRF;//系统无线类
__noinit__ RtcObj Rtc;//系统实时钟类
__noinit__ KeyObj Key;//
__noinit__ UartObj Uart;//系统串口类

⌨️ 快捷键说明

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