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

📄 level4.h

📁 此程序为利用mage8 AVR 和EM4094实现读取ISO15693类型卡的C程序、读卡稳定、这个项目我们做了好久、非常不错的程序、很适合做这方面产品的朋友们参考
💻 H
字号:


#ifndef __LEVEL4__
#define __LEVEL4__

//// to enable debug features, uncomment following: 
//#define DEBUG

//constants----------------------------------------------------------
#define READER_RELEASE 0x0F             //release
#define READER_DATE      11
#define READER_MONTH      4
#define READER_YEAR       5
#define READER_FAMILY    32

//error list---------------------------------------------------------
#define UART_MESSAGE_OK            0x00
#define ERR_ASIC_ANTENNA_FAULT     0x01
#define ERR_UART_ERROR_FLAG        0x04
#define ERR_UART_OVERFLOW          0x05
#define ERR_UART_WRONG_ICMD        0x06
#define ERR_UART_BAD_CRC           0x07
#define ERR_UART_UNKNOWN_CMD       0x08
#define ERR_UART_NO_ETX            0x09
#define ERR_UART_INTERBYTE_ERR     0x0A

#define ERR_EM4035_WRONG_LEN       0x0B     
#define ERR_EM4035_NO_EOF          0x0C
#define ERR_EM4035_WRONG_DR        0x0D
#define ERR_EM4035_ERROR_MSG       0x0E
#define ERR_EM4035_BAD_CONF_DATA   0x0F

#define ERR_EM4035_RAW_DATA        0x10
#define ERR_EM4035_CAPT_DATA       0x11
#define ERR_EM4035_NO_TAG          0x12
#define ERR_EM4035_BAD_CRC         0x13
#define ERR_EM4035_BUFFER_OVERFLOW 0x14
#define ERR_EM4035_NO_SOF          0x15

#define ERR_EM4035_SELECT_FAILED   0x16
#define ERR_EM4035_A1_NO_SOF       0x17
#define ERR_EM4035_A1_CRC_ERROR    0x18
#define ERR_EM4035_A1_FAILED       0x19
#define ERR_EM4035_A2_NO_SOF       0x1A
#define ERR_EM4035_A2_CRC_ERROR    0x1B
#define ERR_EM4035_A2_FAILED       0x1C
#define ERR_EM4035_AUTH_FAILED     0x1D

#define ERR_EM4035_TAG_NORMAL      0x30
#define ERR_EM4035_NM_READ_FAILED  0x31
#define ERR_EM4035_NM_AUTH_FAILED  0x32
#define ERR_EM4035_NM_CRC_ERROR    0x33

//public variables---------------------------------------------------

extern uint8_t volatile uart_read_bytes;       // 
extern uint8_t volatile uart_read_msg_bytes;   //

extern uint8_t volatile uart_command;          // command handshake value
                                               // set by UART RECV
                                               // reset by main() when done

extern uint8_t cmd_message[32];                // maximum
extern uint8_t cmd_message_len;                // length of current cmd_message
extern uint8_t message_flags;                  // current message flags
extern uint8_t expectedResponseLen;            // expected number of response bits

extern uint8_t read_tag_memory_word_address;   // address of Read cmd
extern uint16_t read_tag_memory_word_low;      // Read Cmd content low
extern uint16_t read_tag_memory_word_hi;       // Read Cmd content hi

extern uint16_t write_tag_memory_word_address; // address of Write Tag cmd
extern uint16_t write_tag_memory_word_low;     // low word of Write Tag cmd
extern uint16_t write_tag_memory_word_hi;      // hi word of Write Tag cmd
extern uint16_t write_tag_memory_delay;        // time delay before eof/response

extern uint16_t write_tag_memory_login_low;    // low word of Login cmd
extern uint16_t write_tag_memory_login_hi;     // hi word of Login cmd

extern uint16_t read_only_word_low;            // Read Only Cmd content low
extern uint16_t read_only_word_hi;             // Read Only Cmd content hi

extern uint16_t write_4094_low;                // low word of SPI configuration word
extern uint16_t write_4094_hi;                 // hi word of SPI configuration word

extern uint8_t switch_coil_byte;               // switch item of Set Coil cmd

extern uint8_t config_data_rate;               // see EM4469 spec
extern uint8_t config_encoder;                 // see EM4469 spec
extern uint8_t config_delayed;                 // see EM4469 spec
extern uint8_t config_lwr;                     // see EM4469 spec
extern uint8_t config_raw;                     // see EM4469 spec
extern uint8_t config_forward_link;            // 0=4050 type, 1=other
extern uint8_t config_write_conf;              // 1=write this configuration into the EEPROM

extern uint8_t volatile read_pos;              // debug uart data ptr
extern uint8_t * read_ptr;                     // debug uart read ptr

extern uint8_t fwd_set_0;                      // forwadlink pulse length values to be set
extern uint8_t fwd_set_A;
extern uint8_t fwd_set_B;
extern uint8_t fwd_set_C;
extern uint8_t fwd_set_D;
extern uint8_t fwd_set_E;
extern uint8_t fwd_set_F;

extern uint8_t debug_mode;
extern uint8_t tx_number;           //received data byte number of raw data from PC;
extern uint8_t rx_number;

extern uint8_t uart_in_command;
extern uint8_t uart_in_param;
extern uint8_t valid_data_flag ;

//function declarations----------------------------------------------

extern void UARTIni(void);                    // initialization of UART

extern void Copy(uint8_t *dst, uint8_t *src, uint8_t len);

extern void SendByte(uint8_t byte);

extern void Send_Card_ID( uint8_t format , uint8_t *data );

#endif // __LEVEL4__

 

⌨️ 快捷键说明

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