📄 function.h
字号:
#ifndef __FUNCTION_H
#define __FUNCTION_H
//------------------------------------------------------------------------------
#ifndef DEBUG
#pragma message("\r\n---------DEBUG---------")
#define DEBUG
#define DEBUG_I2C
#define DEBUG_RF
#endif
//#define USE_WDT
#define USE_TIMER_A3
//#define USE_DAC12
#define USE_SD16_A
//#define USE_LCD_A
#define USE_BT
//------------------------------------------------------------------------------
//#define SYSCLOCK_512K //system clock
//#define SYSCLOCK_1M
#define SYSCLOCK_2M
//#define SYSCLOCK_4M
//#define SD16_OSR64 //SD16 OSR
//#define SD16_OSR128
#define SD16_OSR256
//#define SD16_OSR512
//#define SD16_OSR1024
#define SD16_MAX_SAMP 256 //64 128 256 512 1024 how many samples need to get one data
#define SD16_DIV_SAMP 8 //6 7 8 9 10
#define SENSOR1 //sensor
//#define SENSOR2
#define MASTER_REQ_EN //request master enable
//#define MULTI_WAITER //allow more the one waiters
#define OSR_CHAGE_EN //OSR rate changeable
#define MAX_RFRETRY 9
#define RFCH_WAITER 3
#define RFCH_MASTER 0
#define RFCH_SECURITY 0
#define RFPA_WAITER 7
#define RFPA_MASTER 7
#define RFPA_SECURITY 7
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Function prototypes
void Init_Sys(void);
void SD16Set(unsigned int Osr,unsigned int count);
void SD16Start(char inch);
void StoreCalInFlash(void);
int SD16GetAverage(unsigned int n);
void halWait(BYTE timeout);
void Pause_10uS(unsigned int delay);
void Pause_1mS(unsigned int delay);
void Disp_Led(char cmd);
void Disp_RGB(char cmd, char ch);
char KeyScan(void);
char I2C_Test();
char I2C_Read_Byte(char addr);
void I2C_Read_String(char addr, char *pdata, char n);
char I2C_Write_Byte(char addr,char data);
char I2C_Write_String(char addr, char *pdata, char n);
void CopyEep2Flash(char infox);
void SpiWriteReg(char addr, char value);
void SpiWriteBurstReg(char addr, char *buffer, char count);
char SpiReadReg(char addr);
void SpiReadBurstReg(char addr, char *buffer, char count);
char SpiReadStatus(char addr);
void SpiStrobe(char strobe);
void CC_PowerupResetCCxxxx(void);
void CC_SPI_bitbang_out(char);
char CC_SPI_bitbang_in();
signed char Cc_RSSI(char Rssi);
void CC_INIT(void);
void Cc_Reset(void);
void Cc_Send(char *buf, char length);
void Cc_Receive(char *buf, char length);
void RF_TEST(void);
void Req_Waiter(void);
void Req_Master(char cmd);
void Dpr_Init(void);
void Dpr_main(void);
void WeightPrc(void);
#define CC_Wait(x) Pause_10uS(x)
void SpiWriteCd(char value, char ch);
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
extern unsigned int SysCtrl;
extern unsigned int PlateFlag;
extern unsigned int SlaveSN;
extern unsigned int BottleMinWeight;
extern unsigned int HandleMinWeight;
extern unsigned int SD16Config;
#define SD16_OVER 0x8000
#define SD16_CHANGE 0x4000
#define SD16_VOLC 0x0200
#define SD16_ON 0x0100
extern const char PaTable[];
extern long MaxSpan;
extern long Cal0Min;
extern long Cal0Max;
extern long Cal1Min;
extern long Cal1Max;
extern long Cal2Min;
extern long Cal2Max;
extern long Cal3Min;
extern long Cal3Max;
extern long Cal4Min;
extern long Cal4Max;
extern unsigned int Product[5];
extern const char EepromShadow0[0x80];
extern const char EepromShadow1[0x80];
extern char PmMode; // Current program mode
extern unsigned int SD16Config;
extern int Wt_Old[5];
extern int Wt_Delta1[5];
extern int Wt_Delta2[5];
extern char WaiterId[5];
extern char PlateNow;
extern char PlateInfo[5];
extern char RF0CTRL;
extern char RF0CNT;
extern char RF0ERR;
extern char RF0STATUS[];
extern char RfTxBuf[];
extern char RfRxBuf[];
extern char AppRFStatus;;
extern long SD16Result;
extern long Cal0Min_t;
extern long Cal0Max_t ;
//------------------------------------------------------------------------------
#pragma dataseg = INFOB // Info Flash Memory Block A
__no_init unsigned int InfoBFlag @0x1000;
__no_init unsigned int SlaveSN @0x1000+2;
__no_init unsigned int SysCtrl @0x1000+4;
__no_init unsigned int PlateFlag @0x1000+6;
__no_init unsigned int BottleMinWeight @0x1000+8; //200g
__no_init unsigned int HandleMinWeight @0x1000+10; //2g
__no_init unsigned int Product[5] @0x1000+88;
__no_init long MaxSpan @0x1000+16; //span
__no_init long CalMin[5] @0x1000+48;
__no_init long CalMax[5] @0x1000+48+20;
__no_init char LED_CTL0 @LCDM4_; //last data
__no_init char LED_CTL1 @LCDM5_; //bit7-on/0ff bit6..0-sp
#pragma dataseg = default
//------------------------------------------------------------------------------
// SysCtrl
// bit16...3
// bit1: 0-single 1-multi
// bit0: 0-wake up 1-always on
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//power down mode
/*
SCG1 SCG0 OSCOFF CPUOFF Mode CPU and Clocks Status
0 0 0 0 Active All
0 0 0 1 LPM0 [ CPU, MCLK] SMCLK, ACLK
0 1 0 1 LPM1 [ CPU, MCLK, DCO osc. DC] SMCLK, ACLK
1 0 0 1 LPM2 [ CPU, MCLK, SMCLK, DCO osc. ] DC, ACLK
1 1 0 1 LPM3 [ CPU, MCLK, SMCLK, DCO osc. DC] ACLK
1 1 1 1 LPM4 [ All ]
*/
/*
main when goto sleep - LPM0
BT turn on voltage - -
sleep - LPM3
turn on sd16 - LPM0
SD16 new data - ACTIVE
else - LPM3
*/
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
#define LED_DELAY 50
#define LED_ALLOFF 0
#define LED_1ON 1
#define LED_2ON 2
#define LED_WORK LED_2ON
#define LED_3ON 3
#define LED_4ON 4
#define LED_ALLON 5
#define LED_FULL LED_ALLON
#define LED_NOPOWER 6
#define LED_CHARGE 8
#define LED_WAITER 13
#define LED_MASTER 18
#define LED_CAL_L 23
#define LED_CAL_H 28
#define LED_CAL_O 33
#define LED_CAL_E 38
#define LED_DISABLE 43
#define RGB_ALL_OFF 0
#define RGB_ALL_ON 2
#define RGB_R 4
#define RGB_G 6
#define RGB_B 8
#define RGB_RGB 10
#define RGB_RGB2 14
#define PM_CALL BIT7
enum{
PM_INIT, // 0 Initialize the system
PM_PWRDOWN, // 1 Powered Down
PM_MEASURE, // 2 Normal
PM_WAITER, // 3 find waiter id
PM_MASTER_CMD, // 4 request master
PM_BOTTLE_UP, // 5
PM_MASTER_DATA, // 6 send data to master
PM_CAL_ZERO, // 7 Reset scale zero
PM_CAL_LO, // 8 Calibrate Low
PM_CAL_HI, // 9 Calibrate High
PM_CONFIG // a Config
};
#define PLRF_ERR 0x80
#define PLRF_NONE 0x00<<4
#define PLRF_WAITER1 0x01<<4
#define PLRF_WAITER2 0x02<<4
#define PLRF_MASTER1 0x03<<4
#define PLRF_MASTER2 0x04<<4
#define PLRF_CONFIG 0x05<<4
#define PLRF_MSK 0x07<<4
#define APRF_IDLE 0x00
#define APRF_BUSY 0x40
#define APRF_FINISH 0x80
#define APRF_ERR 0xc0
#define APRF_MSK 0xc0
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -