nRF24lu1实现无线鼠标程序


nRF24lu1实现的无线鼠标接收模块的程序,实现了USB接口协议
资源截图
代码片段和文件信息
/* Copyright (c) 2008 XUNTONG technology co.  All Rights Reserved.
 *
 * The information contained herein is confidential property of 
 * XUNTONG technology co. The use copying transfer or disclosure 
 * of such information is prohibited except by express written
 * agreement with XUNTONG technology co.
 */ 

/** @file
 *
 * Application for Keyboard and Mouse.
 *
 *
 */

#include 
#include 

#include “nordic_common.h“
#include “hal_nrf.h“

#define SET_BIT(pos) ((uint8_t) (1<<( (uint8_t) (pos) )))
#define UINT8(t) ((uint8_t) (t))

void hal_nrf_set_irq_mode(hal_nrf_irq_source_t int_source bool irq_state)
{
  if(irq_state)
  {
    hal_nrf_write_reg(CONFIG hal_nrf_read_reg(CONFIG) & ~SET_BIT(int_source));
  }
  else
  {
    hal_nrf_write_reg(CONFIG hal_nrf_read_reg(CONFIG) | SET_BIT(int_source));
  }
}

uint8_t hal_nrf_get_clear_irq_flags(void)
{
  return hal_nrf_write_reg(STATUS (BIT_6|BIT_5|BIT_4)) & (BIT_6|BIT_5|BIT_4);
}

void hal_nrf_clear_irq_flag(hal_nrf_irq_source_t int_source)
{
  hal_nrf_write_reg(STATUS SET_BIT(int_source));
}
 
bool hal_nrf_get_irq_mode(uint8_t int_type)
{
  if(hal_nrf_read_reg(CONFIG) & SET_BIT(int_type))
    return false;
  else
    return true;
}

uint8_t hal_nrf_get_irq_flags(void)
{
  return hal_nrf_nop() & (BIT_6|BIT_5|BIT_4);
}

void hal_nrf_set_crc_mode(hal_nrf_crc_mode_t crc_mode)
{
  hal_nrf_write_reg(CONFIG (hal_nrf_read_reg(CONFIG) & ~(BIT_3|BIT_2)) | (UINT8(crc_mode)<<2));
}

void hal_nrf_open_pipe(hal_nrf_address_t pipe_num bool auto_ack)
{
  switch(pipe_num)
  {
    case HAL_NRF_PIPE0:
    case HAL_NRF_PIPE1:
    case HAL_NRF_PIPE2:
    case HAL_NRF_PIPE3:
    case HAL_NRF_PIPE4:
    case HAL_NRF_PIPE5:
      hal_nrf_write_reg(EN_RXADDR hal_nrf_read_reg(EN_RXADDR) | SET_BIT(pipe_num));

      if(auto_ack)
        hal_nrf_write_reg(EN_AA hal_nrf_read_reg(EN_AA) | SET_BIT(pipe_num));
      else
        hal_nrf_write_reg(EN_AA hal_nrf_read_reg(EN_AA) & ~SET_BIT(pipe_num));
      break;

    case HAL_NRF_ALL:
      hal_nrf_write_reg(EN_RXADDR ~(BIT_7|BIT_6));

      if(auto_ack)
        hal_nrf_write_reg(EN_AA ~(BIT_7|BIT_6));
      else
        hal_nrf_write_reg(EN_AA 0);
      break;
      
    default:
      break;
  }
}

void hal_nrf_close_pipe(hal_nrf_address_t pipe_num)
{
  switch(pipe_num)
  {
    case HAL_NRF_PIPE0:
    case HAL_NRF_PIPE1:
    case HAL_NRF_PIPE2:
    case HAL_NRF_PIPE3:
    case HAL_NRF_PIPE4:
    case HAL_NRF_PIPE5:
      hal_nrf_write_reg(EN_RXADDR hal_nrf_read_reg(EN_RXADDR) & ~SET_BIT(pipe_num));
      hal_nrf_write_reg(EN_AA hal_nrf_read_reg(EN_AA) & ~SET_BIT(pipe_num));
      break;
    
    case HAL_NRF_ALL:
      hal_nrf_write_reg(EN_RXADDR 0);
      hal_nrf_write_reg(EN_AA 0);
      break;
      
    default:
      break;
  }
}

void hal_nrf_set_address(hal_nrf_address_t address uint8_t *addr)
{
  switch(address)
  {

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-04-15 19:00  Source Code
     目录           0  2012-04-01 11:00  Source CodeArch
     目录           0  2012-04-01 11:00  Source CodeArchHAL
     目录           0  2012-04-01 11:00  Source CodeArchHALInclude
     文件        1446  2008-02-20 17:30  Source CodeArchHALIncludehal_flash.h
     文件       15609  2008-02-20 17:30  Source CodeArchHALIncludeHAL_NRF.H
     文件        9138  2008-02-20 17:30  Source CodeArchHALIncludehal_nrf_reg.h
     文件       11660  2008-02-21 08:58  Source CodeArchHALIncludeHAL_USB.H
     文件        4632  2008-02-20 17:57  Source CodeArchHALIncludehal_usb_desc.h
     文件        1164  2008-02-21 08:58  Source CodeArchHALIncludehal_usb_hid.h
     文件         750  2008-02-20 17:58  Source CodeArchHALIncludehal_usb_hid_desc.h
     文件        1392  2008-02-20 17:30  Source CodeArchHALInclude
ordic_common.h
     目录           0  2012-04-01 11:00  Source CodeArchHAL
RF24L01
     文件       12658  2008-02-20 17:34  Source CodeArchHAL
RF24L01hal_nrf_l01.c
     目录           0  2012-04-01 11:00  Source CodeArchHAL
RF24LU1
     文件        2413  2012-04-01 11:06  Source CodeArchHAL
RF24LU1hal_flash.c
     文件         739  2012-04-02 08:50  Source CodeArchHAL
RF24LU1hal_nrf_hw.c
     文件        1308  2008-02-20 17:30  Source CodeArchHAL
RF24LU1hal_nrf_hw.h
     文件       27774  2012-04-01 11:11  Source CodeArchHAL
RF24LU1HAL_USB.C
     文件        3826  2008-02-20 17:56  Source CodeArchHAL
RF24LU1hal_usb_hid.c
     文件        1824  2008-02-20 17:57  Source CodeArchHAL
RF24LU1USB.H
     文件        4527  2008-02-21 08:58  Source CodeArchHAL
RF24LU1USB_MAP.H
     目录           0  2012-04-01 11:00  Source CodeArch
RF24LU1
     文件        1787  2012-04-01 11:12  Source CodeArch
RF24LU1CKLF.C
     文件        2756  2008-02-20 17:55  Source CodeArch
RF24LU1CKLF.H
     文件         778  2012-04-01 11:12  Source CodeArch
RF24LU1CPU.C
     文件         857  2008-02-20 17:55  Source CodeArch
RF24LU1CPU.H
     目录           0  2012-04-01 11:00  Source CodeBuilds
     文件       30800  2008-02-21 10:05  Source CodeBuildsusb_dongle.hex
     文件       14968  2008-02-27 15:30  Source CodeBuildswdp_keyboard.hex
     目录           0  2012-04-01 11:00  Source CodeComp
............此处省略308个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)