#ifndef _ECBM_FUR_H_//ͷ�ļ���ֹ�ؼ��رر����ȿ�����û�ж�������������˵���Ѿ����ع�һ���ˡ�
#define _ECBM_FUR_H_//û����˵�����״μ��أ���ô����ִ�С����Ҷ�������궨�壬��ֹ��һ�α����ء�
/*-------------------------------------------------------------------------------------
The MIT License (MIT)

Copyright (c) 2021 ����

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

����˵����
    ����������MIT��ԴЭ�����������ṩ������ֻ��֤ԭʼ�汾����������ά����BUG��
����ͨ�����紫���İ汾Ҳ���������޸Ĺ����ɴ˳��ֵ�BUG�������޹ء�������ʹ��ԭʼ
�汾����BUGʱ������ϵ���߽����
                            **************************
                            * ��ϵ��ʽ����Ⱥ778916610 *
                            **************************
------------------------------------------------------------------------------------*/
//-----------------������ͼ�����ý��棬����Configuration Wizard��������-----------------
//<<< Use Configuration Wizard in Context Menu >>>
//<o>ָ���
//<i>��λ������ÿ��ָ��ռ6���ֽڡ�
//<i>����Ҫ��һ��ָ��棬�������200��ָ��档
//<1-200>
#define FUR_BUF_MAX 5
//<q>���ڻظ�/����ʹ��
//<i>����Ϊ�ӻ�ʱ��FUR��Ȼ�ǻ��ڴ��ڵ�Ӧ�ã��������ݵķ�������������������ʽ��
//<i>�����ð���OLED����ʾ���ݡ� ֱ�ӹ۲�������ת�Ƕȵȡ���ʱ�ѻظ�����ȡ�������Խ�ʡһЩ�ռ䡣
//<i>��Ҫ����Ϊ�����Ļ������ڷ����DZ���Ҫ�еIJ��֡�����Ҫʹ�ܡ�
#define FUR_UART_SEND_EN 1
//<<< end of configuration section >>>
//-----------------������ͼ�����ý��棬����Configuration Wizard��������-----------------
/*---------------------------------------ͷ�ļ�------------------------------------*/
#include "ecbm_core.h"    //ECBM���ͷ�ļ��������Ѿ�������STC8��ͷ�ļ���
/*---------------------------------------�궨��------------------------------------*/
/*------------------��������------------------*/
#define fur8  unsigned char //�޷���8λ������
#define fur16 unsigned int  //�޷���16λ������
#define fur32 unsigned long //�޷���32λ������
/*------------------��������------------------*/
#define FUR_READ    0x00//���Ĵ�����
#define FUR_ADD     0x10//�Ĵ�������һ������
#define FUR_DEC     0x20//�Ĵ�����ȥһ������
#define FUR_MUL     0x30//�Ĵ�������һ������
#define FUR_DIV     0x40//�Ĵ�������һ������
#define FUR_AND     0x50//�Ĵ�������һ������
#define FUR_OR      0x60//�Ĵ�������һ������
#define FUR_XOR     0x70//�Ĵ��������һ������
#define FUR_BIT     0x80//�Ĵ���λ��ֵ��
#define FUR_EQU     0x90//�Ĵ�����ֵ��
/*------------------��־λ����----------------*/
/*���±�־λ����FUR����ڲ��жϺ��������û�����Ҫ��ѯ��Щλ��*/
#define FUR_WRITE   0x01//д��ʹ�ܣ�������������Ҫд���Ĵ�����
#define FUR_HEX     0x02//16����ʹ�ܣ�������������Ҫ��16���Ʊ�ʾ��
#define FUR_FBID    0x04//����IDʹ�ܣ��������ָ���Dz�ѯID�õġ�
/*�û����Զ��ı�־λ*/
#define FUR_EN      0x80//��Ч����ʹ�ܣ������������DZ���Ӧ�ô��������ݡ�
#define FUR_END     0x40//����������־λ�������������Ѿ�������ϡ�
/*------------------�ṹ�嶨��----------------*/
typedef struct{
    fur8    status;
    fur8    operate;
    fur16   addr;
    fur16   dat;
}fur_buf_def;
/*------------------��������----------------*/
extern fur_buf_def fur_cmd_buf[FUR_BUF_MAX];//ָ��档
extern fur8  fur_status;//����״̬����
extern fur8  fur_start;//�������ָ�롣
extern fur8  fur_end;//�����βָ�롣
extern fur8  fur_count;//����ͳ�ƽ����˶�����ָ�
extern fur8  fur_temp8;//���ڽ���8λ���ݵ���ʱ������
extern fur8  fur_id;//���ڽ���ID����ʱ������
extern fur16 fur_temp16;//���ڽ���16λ���ݵ���ʱ������
/*------------------״̬����----------------*/
#define FUR_READY       0//����̬��ɶҲ������
#define FUR_GET_ADDR    1//���յ�ַ״̬��
#define FUR_GET_ID      2//����ID״̬��
#define FUR_GET_OP      3//���ղ�����״̬��
#define FUR_GET_OP_EX   4//���ղ�����״̬��
#define FUR_GET_DATA    5//��������״̬��
#define FUR_GET_DATA16  6//����16��������״̬��
#define FUR_CMD_ID      7//ȷ��ID�IJ��֡�
/*--------------------------------------������-----------------------------------*/
/*-------------------------------------------------------
��������fur_data_in
��  ����FUR�������뺯������FUR����õ������ݷ��뵽�Ĵ����С�
��  �룺
    addr    Ҫ����ĵ�ַ��
    dat     Ҫ��������ݡ�
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_data_in(fur16 addr,fur16 dat);
/*-------------------------------------------------------
��������fur_data_out
��  ����FUR����������������Ĵ��������������FUR�����
��  �룺
    addr    Ҫ����ĵ�ַ��
��  ������
����ֵ��
    Ҫ��������ݡ�
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern fur16 fur_data_out(fur16 addr);
/*-------------------------------------------------------
��������fur_get_uart
��  ����FUR��ȡ�������ݺ�����
��  �룺��
��  ������
����ֵ��
    ���ڽ��յ������ݡ�
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern fur8 fur_get_uart(void);
/*-------------------------------------------------------
��������fur_set_uart
��  ����FUR����(����)�������ݺ��������ڵ����ݼĴ���һ��ֵ�ͻᷢ�ͣ��������Ҳ���Ƿ��ͺ�����
��  �룺
    dat     Ҫ���͵����ݡ�
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_set_uart(fur8 dat);
/*-------------------------------------------------------
��������fur_get_id
��  ����FUR��ȡ����ID������
��  �룺��
��  ������
����ֵ��
    ������ID�š�
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern fur8 fur_get_id(void);
/*-------------------------------------------------------
��������fur_overflow_callback
��  ����FUR����ָ������ص������������յ���ָ���ָ������ʱ���á�
��  �룺��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_overflow_callback(void);
/*-------------------------------------------------------
��������fur_send_num_10
��  ����FUR������ֵ��������10���Ƶĸ�ʽ���͡�
��  �룺
    num     Ҫ���͵���ֵ��0~65535��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_send_num_10(u16 num);
/*-------------------------------------------------------
��������fur_send_num_16
��  ����FUR������ֵ��������16���Ƶĸ�ʽ���͡�
��  �룺
    num     Ҫ���͵���ֵ��0x0000~0xffff��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_send_num_16(u16 num);
/*-------------------------------------------------------
��������fur_reg_operate
��  ����FUR�Ĵ�������������
��  �룺
    buf_point   Ҫ������ָ���ڻ����е�λ�á�
��  ������
����ֵ��
    ����֮�󣬸üĴ�����ֵ��
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern fur16 fur_reg_operate(u8 buf_point);
/*-------------------------------------------------------
��������fur_init
��  ����FUR��ʼ��������
��  �룺��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_init(void);
/*-------------------------------------------------------
��������fur_deal
��  ����FUR������������Ҫ�ŵ�ѭ�������С�
��  �룺��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_deal(void);
/*-------------------------------------------------------
��������fur_check
��  ����FUR��麯�������ڼ�鵱ǰ֡�Ƿ����Э��涨��
��  �룺��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_check(void);
/*-------------------------------------------------------
��������fur_reset
��  ����FUR���ú�������������FUR����״̬��
��  �룺��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_reset(void);
/*-------------------------------------------------------
��������fur_receive
��  ����FUR���պ�������Ҫ���ڴ��ڽ����ж���ִ�С�
��  �룺��
��  ������
����ֵ����
�����ߣ�����
�������̣���
�������ڣ�2021-10-2
�޸ļ�¼��
-------------------------------------------------------*/
extern void fur_receive(void);
#endif  //���������#ifndef��ϳ�һ������Ρ�
        //��һ������Ϊ��β��