📄 class.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 + -