#include "defines.h"

//--------------------------------------------------------------------------
//�жϷ�����
//--------------------------------------------------------------------------
#pragma    CODE_SEG    NON_BANKED
//
interrupt void  SCI0_ISR(void)
{
    SCI0SR1_RDRF = ClearFlag;
}
#pragma CODE_SEG DEFAULT


//-------------------------------------------------------------------------
//Api_SCI_Trans_Bytes    ���ڷ���     INT8U *str,INT16U len      : str:�����ַ���   len:�������ݳ���
//--------------------------------------------------------------------------
void Api_SCI_Trans_Bytes(INT8U *str, INT8U len)
{
    INT8U i;
    for(i = 0; i < len; i++)    Api_SCI_Trans_Byte(*str++);
}
//-------------------------------------------------------------------------
//Function Name  : Api_SCI_Trans_Byte    ���ڷ���
//--------------------------------------------------------------------------
void  Api_SCI_Trans_Byte(INT8U data)
{
    while(SCI0SR1_TDRE == null);         //�������ݼĴ�����=0����û�գ�1�ǿ�
    SCI0DRL = data;
    while(!SCI0SR1_TC);                        //=1������ɣ�����
}
//-------------------------------------------------------------------------
//Function Name  : Api_SCI_Init     SCIģ���ʼ��
//--------------------------------------------------------------------------
void Api_SCI_Init(INT8U on)                               //lin ת����оƬ   ����4�����OFF��4��   20161012���ڶ����ӣ�ȥ��ԭio  init�и�ֵ
{
    if(on)
    {
        SCI0SR2_AMAP = Disable;
        SCI0CR1_LOOPS   = Disable;             //��������ģʽ
        SCI0CR1_SCISWAI = Disable;            //ʹ�ܵȴ�ģʽ
        SCI0CR1_M       = Disable;                //8 byte ģʽ
        SCI0CR1_WAKE    = Enable;              //Adrress Wake
        SCI0CR1_PE      = Disable;                //��ֹУ��
        SCI0SR1_RDRF    = Disable;
        //SCI0SR2_BRK13 = !Enable;            //14bit break //0
        SCI0SR2_BRK13 = 1;                          //14bit break //0
        SCI0SR2_AMAP = Disable;
        //SCI0BDH_TNP     = 3;                    //div4;
        SCI0BDH_IREN    = Disable;             //��ֹ������
        SCI0BD_SBR      = 17;             //208

        /*SCI0CR2_TIE  = Disable;
        SCI0CR2_TCIE = Disable;
        SCI0CR2_ILIE = Disable;       */
        SCI0CR2_RE  = Enable;                   //ʹ�ܽ���

        // #if    MODE_SEND
        SCI0CR2_TE  = Enable;                     //ʹ�ܷ���
        //SCI0CR2_RWU = Enable;
        //SCI0CR2_SBK = Disable;
        SCI0CR2_RIE = Enable;    //ʹ�ܽ����ж�

        SCI0SR2_AMAP = Enable;
        SCI0ACR2_BKDFE   = Enable;   //ʹ�ܶϵ����·
        SCI0ACR2_BERRM   = 0;

        //SCI0ACR1_BERRIE  = Disable;  //���
        //SCI0ACR1_RXEDGIE = Disable;  //
        SCI0ACR1_BKDIE   = Enable;   //�ϵ���ʹ��
        SCI0ASR1_BKDIF   = ClearFlag;
    }
    else
    {

        SCI0CR1_WAKE    = Disable;              //Adrress Wake
        SCI0CR2_RE  = Disable;                   //ʹ�ܽ���

        SCI0CR2_TE  = Disable;                     //ʹ�ܷ���
        SCI0CR2_RIE = Disable;    //ʹ�ܽ����ж�

        SCI0ACR2_BKDFE   = Disable;   //ʹ�ܶϵ����·
        SCI0ACR1_BKDIE   = Disable;   //�ϵ���ʹ��
        SCI0ASR1_BKDIF   = ClearFlag;
    }
}