3114|1

296

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

无线通信模块 nrf2401(软件) [复制链接]


#include "main.h"

extern uchar initdata[15];
extern uchar txdata[32];

uchar temp,bytecnt1,bitcnt,bitcnt1,tempi;
//**************************延时********************
void delay500ns(void)
{
    _NOP();
}
//**************************延时********************
void delay5us(void)
{
    uchar x,y;
    for(y=0;y<5;y++)
      for(x=0;x<2;x++);
}
//**************************延时********************
void delay202us(void)
{
    uchar n,m;
    for(m=0;m<200;m++)
    for(n=0;n<3;n++);
}
//**************************延时********************
void delay3ms(void)
{
    int i,j;
    for(i=3;i>0;i--)
            for(j=2000;j>0;j--);
}
//*************************IO口初始化***************
void init_io(void)
{
P1DIR|=CS+PWR;
        P3DIR|=DATA;
P1DIR&=~DR1;
P3DIR|=CLK1;
P1DIR|=CE;
P3OUT&=~DATA;
P1OUT&=~PWR;
P1OUT&=~CS;
P3OUT&=~CLK1;
P1OUT&=~CE;
}
//*************************2401上电*****************
void nrf2401_on(void)
{
    P1OUT|=PWR;
}
//************************2401配置******************
void buildinitword(void)
{
initdata[0]=0x10;
initdata[1]=0xff;
initdata[2]=0x00;
initdata[3]=0x1c;
initdata[4]=0xcc;
initdata[5]=0xcc;
initdata[6]=0xcc;
initdata[7]=0x00;
initdata[8]=0xcc;
initdata[9]=0xcc;
initdata[10]=0xcc;
initdata[11]=0xcc;
initdata[12]=0x83;
initdata[13]=0x4f;
initdata[14]=0x04;
}
//***********************初始化配置*****************
void initnrf2401(void)
{
      P1OUT|=CS;
      delay5us();
      for(bytecnt1=0;bytecnt1<15;bytecnt1++)
      {
        tempi=initdata[bytecnt1];
        for(bitcnt=0;bitcnt<8;bitcnt++)
        {
          P3OUT&=~CLK1;
          if(tempi&0x80)
              P3OUT|=DATA;
          else
              P3OUT&=~DATA;
          delay500ns();
          P3OUT|=CLK1;
          delay500ns();
          P3OUT&=~CLK1;
          tempi=tempi<<1;
         }
      }
      P1OUT&=~CS;
      P3OUT&=~DATA;
}
//**********************************************
/*void buildshockword(void)
{
      txdata[0]=0xcc;
      txdata[1]=0xcc;
      txdata[2]=0xcc;
      txdata[3]=0xcc;
}*/
//************************发送数据包************
void shockburst(unsigned char size,unsigned char *tx_data)
{
    P1OUT|=CE;
    delay5us();
    
    for(bytecnt1=0;bytecnt1<size;bytecnt1++)
    {
        tempi=tx_data[bytecnt1];
        for(bitcnt1=0;bitcnt1<8;bitcnt1++)
        {
            P3OUT&=~CLK1;
            if(tempi&0x80)
              P3OUT|=DATA;
            else
              P3OUT&=~DATA;
            delay500ns();
            P3OUT|=CLK1;
            delay500ns();
            P3OUT&=~CLK1;
            tempi=tempi<<1;
        }
    }
   // delay3ms();
    P1OUT&=~CE;
    P3OUT&=~DATA;
    delay202us();
}
//**********************2401初始化********************
void nrf2401_init(void)
{
  init_io();
  nrf2401_on();
  buildinitword();
  initnrf2401();
  //buildshockword();
}

[ 本帖最后由 kevinrobot 于 2012-6-12 21:45 编辑 ]

NRF2401cn.pdf

270.89 KB, 下载次数: 50

最新回复

顶一个  详情 回复 发表于 2012-8-29 08:59
点赞 关注
个人签名开源机器人小组介绍:https://bbs.eeworld.com.cn/thread-330292-1-1.html


 

回复
举报

4

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
顶一个
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表