bam_eep.h
/****************************************************************************/
/* MODULE: bam_eep.h */
/* FUNCTION: EEPROM programming definitions and prototypes. */
/* HISTORY: 4-3-96 L.R. Erickson - Original */
/****************************************************************************/
#ifndef INCL_BAM_EEP
#define INCL_BAM_EEP
/********************************************************/
/* defines */
/********************************************************/
#define EEP_TX_BUF_SIZE 6s
#define EEP_RX_BUF_SIZE 22
#define MAX_PROG_CHARS 16
#define EEP_WT_MSG_STATE 0
#define EEP_WT_CMD_STATE 1
#define EEP_WT_CNT_STATE 2
#define EEP_WT_HI_ADD_STATE 3
#define EEP_WT_LO_ADD_STATE 4
#define EEP_WT_DATA_STATE 5
#define EEP_WT_CHK_STATE 6
#define EEP_BUF_ERR 0
#define EEP_CMD_STATE_ERR 1
#define EEP_FE_ERR 2
#define EEP_OE_ERR 3
#define EEP_UNK_CMD_ERR 4
#define EEP_MAX_CNT_ERR 5
#define EEP_CHK_SUM_ERR 6
#define EEP_PROG_CMD_ACK 7
#define EEP_PROG_CMD_DONE 8
#define EEP_PROG_CMD_FAIL 9
#define EEP_PROG_CMD 1
#define EEP_REPLY 1
/********************************************************
typedefs
********************************************************/
typedef volatile struct EEP_TX_struct {
unsigned char head_index ;
unsigned char tail_index ;
unsigned char tx_buf[EEP_TX_BUF_SIZE] ;
unsigned char tx_busy ;
} EEP_TX_struct ;
typedef volatile struct EEP_RX_struct {
unsigned char head_index ;
unsigned char tail_index ;
unsigned char rx_buf[EEP_RX_BUF_SIZE] ;
unsigned char rx_stat[EEP_RX_BUF_SIZE] ;
unsigned char rx_crash ;
unsigned char rx_proc_state ;
unsigned char rx_proc_chksum ;
unsigned char rx_proc_cmd ;
unsigned char rx_proc_cnt ;
unsigned char rx_data_cnt ;
unsigned int rx_proc_ld_add ;
unsigned char rx_prog_chars[MAX_PROG_CHARS] ;
} EEP_RX_struct ;
/********************************************************/
/* Function prototypes */
/********************************************************/
#ifdef SRC_BAM_EEP
void eep_main(void) ;
void eep_transmit(void) ;
void eep_receive(void) ;
void init_eep_data(void) ;
void process_eep_char(void) ;
void send_eep_msg(int) ;
unsigned char eep_chk_ch_bit(unsigned char, unsigned char) ;
unsigned char write_eeprom(void) ;
#pragma model(kc)
#define TRUE 1
#define FALSE 0
#else
extern void eep_main(void) ;
extern void eep_transmit(void) ;
extern void eep_receive(void) ;
#endif
#endif