📄 lowlevel.h
字号:
/******************************************************************************
* 头文件名: lowlevel.h *
******************************************************************************/
# ifndef __LOWLEVEL_H__
# define __LOWLEVEL_H__
# include "mcubas.h"
# define _nop_() {_asm NOP;}
/* 时间触发宏定义 */
# define CMSysClock 19660800L // 系统时钟:19.6608MHz
# define CMModTic0 16 // 19200Hz
# define CMModTic1 12 // 1200Hz
# define CMModTic2 10 // 10ms
# define CMModTic3 10 // 100ms
# define CMModSec 60 // 1s
# define CMModMin 60 // 1min
# define CMModHour 24 // 1hour
/* 声明时间触发全局变量 */
extern unsigned char cgwrkTic0, cgwrkTic1, cgwrkTic2, cgwrkTic3;
extern unsigned char cgwrkSec, cgwrkMin, cgwrkHour;
extern unsigned char cgflgTic0, cgflgTic1, cgflgTic2, cgflgTic3;
extern unsigned char cgflgSec, cgflgMin, cgflgHour;
extern unsigned char cgflgHSec;
/* 串口通信宏定义 */
# define CMUART0TxBufLenMax 64
# define CMUART0RxBufLenMax 64
# define CMUART1TxBufLenMax 64
# define CMUART1RxBufLenMax 64
# define CMUART2TxBufLenMax 16
# define CMUART2RxBufLenMax 16
/* 声明串口通信全局变量:UART0 */
extern unsigned char cUART0TxBuf[CMUART0TxBufLenMax];
extern unsigned char cUART0RxBuf[CMUART0RxBufLenMax];
extern unsigned char cUART0TxHead, cUART0TxEnd;
extern unsigned char cUART0RxHead, cUART0RxEnd;
/* 声明串口通信全局变量:UART1 */
extern unsigned char cUART1TxBuf[CMUART1TxBufLenMax];
extern unsigned char cUART1RxBuf[CMUART1RxBufLenMax];
extern unsigned char cUART1TxHead, cUART1TxEnd;
extern unsigned char cUART1RxHead, cUART1RxEnd;
/* 声明串口通信全局变量:UART2(模拟串口) */
extern unsigned char cUART2TxBuf[CMUART2TxBufLenMax];
extern unsigned char cUART2RxBuf[CMUART2RxBufLenMax];
extern unsigned char cUART2TxHead, cUART2TxEnd;
extern unsigned char cUART2RxHead, cUART2RxEnd;
/* 通信波特率宏定义 */
# define BPSUART0 9600
# define BPSUART1 9600
# define BPSUART2 2400
# define BPSUART0L ((unsigned long)BPSUART0)
# define BPSUART1L ((unsigned long)BPSUART1)
# define BPSUART2L ((unsigned long)BPSUART2)
/* 声明A/D转换全局变量 */
extern unsigned short sATDDat[16];
extern unsigned short *sATD0Dat;
extern unsigned short *sATD1Dat;
extern unsigned char cATDDatAvail;
/* EEPROM操作宏定义 */
# define EEPROMCmdProgram 0x20
# define EEPROMCmdEraseSect 0x40
# define EEPROMCmdEraseMass 0x41
# define EEPROMCmdEraseVerify 0x05
# define EEPROMAddrStart 0x2000
/* EEPROM存储数据类型定义 */
typedef union {
unsigned long longint;
unsigned short shortint[2];
unsigned char byte[4];
} EEPROMDataUnion;
/* 位权声明 */
extern const unsigned char cBitInd[8];
/* 子函数声明 */
void UART0Send (void *buf, int len);
int UART0GetRx (void *buf, int len);
void UART0Echo (void);
void UART1Send (void *buf, int len);
int UART1GetRx (void *buf, int len);
void UART1Echo (void);
void UART2Send (void *buf, int len);
int UART2GetRx (void *buf, int len);
void UART2Echo (void);
void ATDSamplStart (void);
char EEPROMReadyCheck (void);
void EEPROMWaitForCmdEmpty (void);
void EEPROMWaitForCmdComplete (void);
void EEPROMEraseSectData (void *addr, int data);
void EEPROMEraseSect (void *addr);
long EEPROMRead4BAligned (void *addr);
void EEPROMWrite4BAligned (void *addr, long data);
void EEPROMEraseWrite4BAligned(void *addr, long data);
int EEPROMRead2BAligned (void *addr);
void EEPROMWrite2BAligned (void *addr, int data);
void EEPROMEraseWrite2BAligned(void *addr, int data);
void EEPROMEraseWrite1B (void *addr, char data);
void __memmovebuf (void *p, int m, int len);
void InitLowLevel (void);
# endif // __LOWLEVEL_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -