#ifndef _rf_send_C_
#define _rf_send_C_
/*********************************************************************************************************************/
#include "ca51f5_config.h"
#include "includes\ca51f5sfr.h"
#include "includes\ca51f5xsfr.h"
#include "includes\gpiodef_f5.h"

#include "Library\Includes\delay.h"

#include "rf_send.h"

sbit Pin_rf  = P3^2;
unsigned char D0,D1;
unsigned int idata ID;
unsigned char RF_Time;			//用于控制RF发送间隔时间


unsigned char Send433_Status = 0; //发送过程的状态
unsigned int Send433_Time = 0;    //记录433发送数据的高低电平时间

unsigned char Yaokong_Data[3]={0};

unsigned char Send433_Byte_Cont=0;//记录发送一组433数据的字节数
unsigned char Send433_Bit_Cont = 0; //记录发送位
unsigned char Temp=0;
unsigned char Chose_Data_En=0;//使能选择一组433数据的第N个字节

void Send433_Byte(void) //100us执行一次
{
//  switch (Send433_Status)
//  {
//  case 0: //同步头高
//    Pin_rf = 1;
//		if (++Send433_Time >= 4)//高电平400us
//    {
//      Send433_Time = 0;
//      Send433_Status = 1; //进入同步头低
//    }
//    break;
//  case 1://同步头低电平
//    Pin_rf = 0;
//    if (++Send433_Time >= 120)//电平12300us
//    {
//      Send433_Time = 0;
//      Send433_Status = 2; //进入发送24位
//    }
//    break;
//  case 2:

//    if(!Chose_Data_En)//还没开始发送 或者上次已经发送完一个字节才使能选择
//    {
//      Chose_Data_En=1;
//      Temp=Yaokong_Data[Send433_Byte_Cont];
//      //Send433_Byte_Cont++;
//    }

//    Send433_Time++;
//    if (Temp & 0x80) //1
//    {
//      if (Send433_Time <= 12)
//      {
//        Pin_rf = 1;
//      }
//      else if (Send433_Time >= 13)
//      {
//        Pin_rf = 0;
//				if (Send433_Time == 16)
//				{
//					Send433_Time = 0;
//					Temp <<= 1;
//					Send433_Bit_Cont++;
//				} 
//      }
//    }
//    else//0
//    {
//      if (Send433_Time <= 4)
//      {
//        Pin_rf = 1;
//      }
//      else if (Send433_Time >= 5)
//      {
//        Pin_rf = 0;
//        if (Send433_Time == 16)
//        {
//          Send433_Time = 0;
//          Temp <<= 1;
//          Send433_Bit_Cont++;
//        }
//      }
//    }
//    if (Send433_Bit_Cont == 8)//发送完一字节
//    {
//      Send433_Bit_Cont = 0;

//      Chose_Data_En=0;//使能选择下一个字节
//      if(++Send433_Byte_Cont==3)
//      {
//        Send433_Byte_Cont=0;
//				
//				if(flagStart == 1)
//					{
//						Send433_Status = 3; //结束脉冲
//					}
//				else
//				{
//					Send433_Status = 0; //一帧数据发送完毕
//				}
//        
//      }
//    }
//    break;
//		
//	case 3:	
//			if (++Send433_Time <= 4)
//      {
//        Pin_rf = 1;
//      }
//			else
//			{
//				Pin_rf = 0;
//				Send433_Time = 0;
//		//		flagStart = 0;
//				Send433_Status = 0;
//				TR0 = 0;       //定时器0禁止
//				
//			}			
//		break;
//  default:
//    break;
//  }
}

void RF_send(unsigned char cnt);
void send_8bit(unsigned char n);

/*****************************************/

void RF_send(unsigned char cnt)
{
	unsigned char i;

	for(i=cnt;i>0;i--)   //单个包发送次数
	{
		Pin_rf=1;
		Delay_50us(5);	 //同步码高电平
		Pin_rf=0;	   
		Delay_50us(185);	 //同步码低电平 
		Pin_rf=1;  

		send_8bit(D0);
		send_8bit(D1);						   
		send_8bit(valueSend);
	}
}

void send_8bit(unsigned char n)
{
	unsigned char i;
	for(i=8;i>0;i--)
	  {
		Pin_rf=1;
		if(n&0x80)
		{//发1码     
			Delay_50us(18);	
			Pin_rf=0;
			Delay_50us(4);
		}
		else
		{//发0码
			Delay_50us(5);
			Pin_rf=0;
			Delay_50us(17);
		}		
		n<<=1;	           
	 }
}


#endif