• 大小: 59KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: CC2530  

资源简介

需要两个CC2530模块,一个是接收红外波形后解码发送端,另一个是接收显示端(串口显示)。对于NEC红外协议遥控器解码。

资源截图

代码片段和文件信息

#include “ioCC2530.h“
#include 
#include 

#define LED P2_0
#define RDATA P1_3        //红外接收口
#define REMOTE_ID 0 
#define FLAG   (1<<3)
#define u32 unsigned long
#define u8  unsigned char


u32 Remote_Odr=0;    //命令暂存处
u8  Remote_Cnt=0;        //按键次数此次按下键的次数
u8  Remote_Rdy=0;        //红外接收到数据   
u8 res=0;                //中断变量
u8 OK=0; 
u8 RODATA=0;  
unsigned int key[4];
u8 bufer[7];

char rf_rx_buf[128];
char serial_rxbuf[128];
char rfbbf[128];
int  serial_rxpos = 0;
int  serial_rxlen = 0;
char is_serial_receive = 0;

void uart0_init();
void uart0_sendbuf(char *pbuf  int len);
void uart0_flush_rxbuf();

void timer1_init();
void timer1_disbale();
void timer1_enable();
u8 zh(u8 *g  u8  *d);

/*@@@@@@@@@@@  add  @@@@@@@@@@@@@@@@*/
void InitKey();

void rf_send( char *pbuf  int len);
void rf_receive_isr();

void uart0_init()
{
  CLKCONCMD &= ~0x40;                          //设置系统时钟源为32MHZ晶振
  while(CLKCONSTA & 0x40);                     //等待晶振稳定
  CLKCONCMD &= ~0x47; 
  PERCFG = 0x00;
  P0SEL |= 0x0C;
  U0CSR |= 0xC0;
  U0GCR |= 11;
  U0BAUD = 216;               // 115200
  UTX0IF = 1;
  
  URX0IE = 1;
}

void uart0_flush_rxbuf()
{
  serial_rxpos = 0;
  serial_rxlen = 0;
  memset(bufer07);
}

void timer1_init()
{
  T1CTL = 0x0C;
  T1CCTL0 = 0x44;
  T1STAT = 0x00;
  T1IE = 1;
  T1CC0L = 250;
  T1CC0H = 0; 
}

void timer1_disbale()
{
  T1CTL &= ~( 1<< 1);
}

void timer1_enable()
{
  T1CTL |= ( 1 << 1 );
  T1STAT = 0x00;
  T1CNTH = 0;
  T1CNTL = 0;
}

void rf_init()
{
  FRMFILT0  = 0x0C;
  TXPOWER   = 0xD5;
  FREQCTRL  = 0x0B;
  
  CCACTRL0  = 0xF8;
  FSCAL1 =    0x00;                 
  TXFILTCFG = 0x09;
  AGCCTRL1 =  0x15;
  AGCCTRL2 =  0xFE;       
  TXFILTCFG = 0x09;                 
  
  RFIRQM0 |= (1<<6);
  IEN2 |= (1<<0);

  RFST = 0xED;
  RFST = 0xE3;
}

void rf_send( char *pbuf  int len)
{
  RFST = 0xE3;                   
  while( FSMSTAT1 & (( 1<<1 ) | ( 1<<5 ))); 
  
  RFIRQM0 &= ~(1<<6); 
  IEN2 &= ~(1<<0);

  RFST = 0xEE;
  RFIRQF1 = ~(1<<1);
  RFD = len + 2;        
  for (int i = 0; i < len; i++) 
  {
    RFD = *pbuf++;
  }

  RFST = 0xE9;
  while (!(RFIRQF1 & (1<<1)));
  RFIRQF1 = ~(1<<1);
  
  RFIRQM0 |= (1<<6);
  IEN2 |= (1<<0); 
}

void rf_receive_isr()
{
  int rf_rx_len = 0;
  int rssi = 0;
  char crc_ok = 0;
  
  rf_rx_len = RFD - 2;
  rf_rx_len &= 0x7F;
  for (int i = 0; i < rf_rx_len; i++)
  {
    rf_rx_buf[i] = RFD;
  }
  rssi = RFD - 73;
  crc_ok = RFD; 
  RFST = 0xED;
  if( crc_ok & 0x80 )
  {
    if(rf_rx_buf[0] == ‘L‘)
    {
      uart0_sendbuf( rf_rx_buf  rf_rx_len-1);
      printf(“[%d]“rssi);
    }
    else
    {
    }
  }
  else
  {
    printf(“\r\nCRC Error\r\n“);
  }
}

void main(void)
{
  P2DIR |= 0x01;                              // P2.0 
  LED = 1;

  EA = 0;
  
  InitKey();
  uart0_init();                          

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         57  2013-07-28 11:09  红外解码无线发送\.hg\00changelog.i

     文件         92  2013-08-10 09:03  红外解码无线发送\.hg\cache\branchheads

     文件         92  2013-07-31 21:45  红外解码无线发送\.hg\cache\branchheads-served

     文件         44  2013-07-31 21:45  红外解码无线发送\.hg\cache\tags

     文件         16  2013-08-10 09:06  红外解码无线发送\.hg\cur-message.txt

     文件        190  2013-07-31 21:45  红外解码无线发送\.hg\dirstate

     文件        116  2013-07-31 21:45  红外解码无线发送\.hg\last-message.txt

     文件         33  2013-07-28 11:09  红外解码无线发送\.hg\requires

     文件       1023  2013-07-31 21:45  红外解码无线发送\.hg\store\00changelog.i

     文件        659  2013-07-31 21:45  红外解码无线发送\.hg\store\00manifest.i

     文件       6171  2013-07-31 21:45  红外解码无线发送\.hg\store\data\main.c.i

     文件       2097  2013-07-28 11:10  红外解码无线发送\.hg\store\data\_t_r_x.ewd.i

     文件       3563  2013-07-28 11:11  红外解码无线发送\.hg\store\data\_t_r_x.ewp.i

     文件        193  2013-07-28 11:11  红外解码无线发送\.hg\store\data\_t_r_x.eww.i

     文件         64  2013-07-28 11:10  红外解码无线发送\.hg\store\data\~2ehgignore.i

     文件        265  2013-07-28 11:11  红外解码无线发送\.hg\store\data\~c7~e5~b3~fd~b9~a4~b3~cc.bat.i

     文件         96  2013-07-28 11:11  红外解码无线发送\.hg\store\fncache

     文件         43  2013-07-28 11:11  红外解码无线发送\.hg\store\phaseroots

     文件         57  2013-07-31 21:45  红外解码无线发送\.hg\store\undo

     文件         43  2013-07-31 21:45  红外解码无线发送\.hg\store\undo.phaseroots

     文件          2  2013-08-10 17:32  红外解码无线发送\.hg\thgstatus

     文件          0  2013-07-31 21:45  红外解码无线发送\.hg\undo.bookmarks

     文件          7  2013-07-31 21:45  红外解码无线发送\.hg\undo.branch

     文件          9  2013-07-31 21:45  红外解码无线发送\.hg\undo.desc

     文件        190  2013-07-31 21:45  红外解码无线发送\.hg\undo.dirstate

     文件          0  2013-07-28 11:09  红外解码无线发送\.hgignore

     文件     107497  2014-01-17 15:45  红外解码无线发送\Debug\Exe\TRX.d51

     文件      51995  2014-01-17 15:45  红外解码无线发送\Debug\Obj\main.r51

     文件        146  2014-01-17 15:45  红外解码无线发送\Debug\Obj\TRX.pbd

     文件       6876  2014-01-17 15:45  红外解码无线发送\main.c

............此处省略22个文件信息

评论

共有 条评论