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

📄 driven.h

📁 一个基于单片机的小型操作系统
💻 H
字号:
/*
*********************************************************************************************************************
*                  东软培训中心教学项目:基于ARM和uc/os-II的PDA系统
*
*                      (c) Copyright 2005, 东软培训中心
*                             All Rights Reserved
*
* 模块名称:驱动程序模块
* 文件名:driven.h
* 作者:朱成果
* 时间:2005年10月5日
* 版本:V0.01
**********************************************************************************************************************
*/
#ifndef _DRIVEN_H
#define	_DRIVEN_H

#include "def.h"
#include "44b.h"

#define NORMAL		0x0a		//正常状态
#define SETRTC 		0x0b		//RTC设置状态
#define SETREC	 	0x0c		//号码录入状态
#define DISTIME		0x0d		//显示时间状态
#define DISDATE		0x0e		//显示日历状态
#define DISREC		0x0f		//号码显示状态
#define ESCAP		0x10		//退出状态
#define NOREC		0x11



#define PDA_NEUTIG			0
#define PDA_MAINPAGE		1
#define PDA_SYSTIME			2
#define PDA_SYSDATE			3
#define BT_RETURN			4
#define PDA_VERSION			5
#define PDA_DISREC			6
#define PDA_SETRTC			7
#define PDA_SETREC			8
#define	PDA_DEL				9
#define PDA_NORECORD		10

#define CLR_WORKSPC			0
#define CLR_ALL				1
#define CLR_STATE			2

#define BLOCK_SIZE	0x4200		//

#define LCDDisplayPin			0x0010	//GPB4
#define LCDWIDTH		320
#define LCDHEIGHT		240

#define LCDCON1_ENVID		(1)
#define LCDCON1_INVVD		(1<<1)
#define LCDCON1_INVFRAME		(1<<2)
#define LCDCON1_INVLINE		(1<<3)
#define LCDCON1_INVCLK		(1<<4)
#define LCDCON1_MMODE		(1<<7)
#define L248 		(8)
#define CLKVAL	(20)	// 60Mhz, fr=100Hz (CLKVAL=38.6)
//#define M5D(n) ((n) & 0x1fffff)

#define LCDDisplayPin			0x0010	//GPB4
#define LCDWIDTH		320
#define LCDHEIGHT		240

#define ADS7843_CTRL_START		0x80
#define ADS7843_GET_X			0x50
#define ADS7843_GET_Y			0x10
#define ADS7843_CTRL_12MODE	0x0
#define ADS7843_CTRL_8MODE	0x8
#define ADS7843_CTRL_SER		0x4
#define ADS7843_CTRL_DFR		0x0
#define ADS7843_CTRL_DISPWD	0x3	// Disable power down
#define ADS7843_CTRL_ENPWD	0x0	// enable power down

#define ADS7843_PIN_CS		(1<<6)	//GPF6
#define ADS7843_PIN_PEN	(1<<5)	//GPG5
//#define ADS7843_PIN_BUSY	(1<<6)

/////////触摸屏动作////////
#define TCHSCR_ACTION_NULL			0	
#define TCHSCR_ACTION_CLICK		1	//触摸屏单击
#define TCHSCR_ACTION_DBCLICK		2	//触摸屏双击
#define TCHSCR_ACTION_DOWN		3	//触摸屏按下
#define TCHSCR_ACTION_UP			4	//触摸屏抬起
#define TCHSCR_ACTION_MOVE		5	//触摸屏移动
#define TCHSCR_ACTION_DISTURB		6	//时间太短的两次按下认为是干扰

#define TCHSCR_IsPenNotDown		(rPDATG&ADS7843_PIN_PEN)

typedef struct RTC_REG {
	U32 	year;
	U8 		month;
	U8	 	day;
	U8	 	week;
	U8	 	hour;
	U8	 	min;
	U8		sec;
} RTC_REG;

typedef struct RECLIST {
	char 	name[20];
	char 	telnum[16];
	char 	plmnum[16];
	char 	mail[25];
	struct RECLIST *RECNext;
} RECLIST;

typedef struct FILECNT {
	U8 	Buffer[BLOCK_SIZE];		//文件缓冲区
	U32 fileblock;				//文件当前的block
	U32 filemode;				//打开文件的模式
	U32 filebufnum;				//文件缓冲区已经读写的字节数
	U32 fileCurpos;				//读写的当前位置
	U32	filesize;				//文件的大小
} FILECNT;

//function in assemble
extern void LCD_DDB(int x);
extern U8 LCD_PUTC(char ch, U32 fcolor, U32 *pput,U32 bcolor);
//function in neuu_drive_lcd.c
void LCDDisplayOpen(U8 isOpen);
void LCD_Init(void);
void LCD_Clear(int mod);
void LCD_loard_tig(int x);
U8 LCD_Putcf(char ch, U32 fcolor, U32 *pput,U32 bcolor);
U8 LCD_Prints(char *plist, U32 fcolour, U32 *pput, U32 bcolour);
void LCD_printf(const char *format,...);
//function in neuu_drive_rtc.c
void Rtc_Init(void);
void Rtc_Read(void);
void Rtc_Set(void);
void BCDU32toAsc(U32 intnum);
void BCDU8toAsc(U8 intnum);
U16 HexToInt(U16 intnum);
U16 IntToHex(U16 intnum);
//function in euu_drive_key.c
U32 GetKey(void);
unsigned int Zlg7289_ReadKey(void);
void Zlg7289_Reset(void);
void GetSETKEY(void);
//function in nedu_sub_state.c
void dis_main(void);
void dis_date(void);
void dis_time(void);
void REC_Display(void);
void Key_sub_state(void);
void RTC_Set_Display(void);
void REC_Set_Display(void);
void NoREC_Display(void);
//funtion in file.c
U32 ReadFile(FILECNT * file,U8 * ReadBuffer,U32 nReadByte);
U8 WriteFile(char filename[],U8 * WriteBuffer,U32 nWriteyte);
//U8 WriteFile(FILECNT* pfile,U8* WriteBuffer, U32 nWriteyte);
int ManegeRec(void);
void struc2buff(void);
int zstrcmp(char *s, char *d);
//funtion in nedu_drive_tch
void GetTCHXY(void);
U32 GetMainXY(void);
void GetTimeXY(void);
void GetDateXY(void);
void GetRECXY(void);
void GetSETRTCXY(void);
void GetSETRECXY(void);
void TchScr_GetScrXY(int *x, int *y, U8 bCal);
void TchScr_GetOSXY(int *x, int *y);
void TchScr_Test(void);
#endif	/* _DRIVEN_H */

⌨️ 快捷键说明

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