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

📄 lib.h

📁 详细介绍了arm7-at91r40008,的开发全过程
💻 H
字号:
/*------------------------------------------------------------------------
 Module:        ../lib/lib.h
 Author:        ll
 Project:       DF9320-2(配变数据采集终端)
 State:
 Creation Date:
 Description:   库函数说明
------------------------------------------------------------------------*/

#ifndef _LIB_LIB_H
#define _LIB_LIB_H

/*
 * 用以定义Task[TASK_MNUM],保存任务名称与TID的对应表,
 * 可以根据TID查找任务名串,补偿PSOS调用的不足
 */
typedef struct {
	char name[4];
	INT32U tid;
}stTask;

/*------------------------------------------------------------------------
							   [宏说明]
------------------------------------------------------------------------*/
#define MERGE(H,L)	((H<<8)+L)						/* 合并高/低字节 */
#define DMERGE(DH,DL,H,L)	((DH<<24)+(DL<<16)+(H<<8)+L)			/* 合并四字节 */
#define LOW(W)		(W&0xFF)						/* 取低字节 */

#define HIGH(W)		(W>>8)	//LL 修改 2004.03.29
#define DLOW(W)	(W>>16)						/* 取第三字节 */
#define DHIGH(W)	(W>>24)						/* 取第四字节 */
#define INC(X, L)	(((X)>=((L)-1))?((X)=0):((X)++))

#define inb(p)		(*(INT8U *)p)
#define inw(p)		(*(INT16U *)p)
#define inl(p)		(*(INT32U *)p)
#define outb(p,v)	(*(INT8U *)p = v)
#define outw(p,v)	(*(INT16U *)p = v)
#define outl(p,v)	(*(INT32U *)p = v)
/*------------------------------------------------------------------------
							  [函数说明]

------------------------------------------------------------------------*/
INT8U 	reverseb(INT8U b);
INT16U  reversebyte(INT16U word);
INT32U  reversebyte_32(INT32U dword);

INT16U 	complement(INT16U v);				/* 取补码 */
INT32U  complement32(INT32U v);				//32位取补码

INT16U 	sumcrc(void  *ptr, short count);
INT16U 	sumcrc_b(void *ptr, int count);
INT8U SendVerifyHead(INT8U* lpbyBuf,INT16U byNum);
INT16U 	fdkcrc(INT8U *ptr, short count);
INT16U 	dnpcrc(const INT8U *ptr, short count);
INT16U 	cscrc(void *pbuf, short count);
INT16U  WHCRC16(INT8U *p,INT32U l);
INT16U WHCRC(INT8U *p,INT32U l);

INT8U  	bcd2bin(INT8U v);				/* 转换BCD码为二进制 */
INT8U  	bin2bcd(INT8U v);				/* 转换二进制为BCD码 */
INT16U  bin2bcd16(INT16U v);
INT16U  bcdtobin16(INT16U v);
INT32U  bcd2bin32(INT32U v);
INT32U  bin2bcd32(INT32U v);

void LongMul(INT32U a, INT32U b, INT32U* result);
void UlongDiv(INT32U* a, INT16U c, INT32U* result);
INT32U MyPow(INT32U x, INT32U y);

void delay_ms(INT32U time);
void delay_us(int time);
INT8U NetMaskToConfig(INT32U u);
INT32U ConfigToNetMask(INT8U u);
INT32U INT8UToINT32U(INT8U * b);
INT16U INT8UToINT16U(INT8U * b);
void INT32UToINT8U(INT32U a,INT8U *b);
void INT16UToINT8U(INT16U a,INT8U *b);


//串口处理部分

#define BSPUSARTSIZE	50	//建议不要超过200



int Readx(INT8U *pbuf, INT16U count, INT8U port);
int WriteX(INT8U *pbuf, INT16U count, INT8U port);
void lseek(INT8U port, INT16U offset);
BOOL RReadx(INT16U Addr, INT8U Port);

#endif /* _LIB_LIB_H */

⌨️ 快捷键说明

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