www.pudn.com > rs485(full).rar > rs485.h


#separate 
char Rs485Process(void); 
void Rs485Initialise(char cAddrHigh, char cAddrLow); 
#separate 
char Rs485Decode( void ); 
void Rs485UpdateCrc(char cVal ); 
void CRC16_Init( void ); 
void CRC16_Update4Bits( char val ); 
void Rs485SendPacket( char cCmd, char cLen, char *cData ); 
void Rs485GetPacket( char *cCom, char *cLen, char *cData ); 
void Rs485SendChar( char c ); 
char PostValidatePacket(void); 
char PacketHasPayload(void); 
void BinToHexAscii( char c ); 
 
 
#define NULL 0 
 
// Configurables 
#define RS485_CONTROL PORTC 
#define OUTPUTS_ON 5 
#define NUM_TX_PREAMBLE 3 
 
 
// Protocol defines 
#define PKT_START 0x02 
 
// States of packet decoder state machine 
#define PKT_WAIT_START      0 
#define PKT_WAIT_ADDR_HIGH  1 
#define PKT_WAIT_ADDR_LOW   2 
#define PKT_WAIT_LEN        3 
#define PKT_CMD             4 
#define PKT_WAIT_DATA       5 
#define PKT_WAIT_CRC_HIGH   6 
#define PKT_WAIT_CRC_LOW    7 
#define PKT_COMPLETE        8 
#define PKT_VALID           9 
#define PKT_INVALID       255 
 
// Error codes 
#define BAD_LENGTH 1 
#define BAD_CRC    2 
 
 
// Packet types 
#define SENSOR_POLL_CMD        0xA1 
#define SENSOR_PING_SYNC       0xA2 
#define SENSOR_CONFIG          0xA3 
#define SENSOR_GET_DATA        0xA4 
 
 
 
#define SENSOR_ACK             0xB0 
#define SENSOR_NAK             0xC0