• 大小: 1.76MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-10
  • 语言: 其他
  • 标签: 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 Code\Arch\
     目录           0  2012-04-01 11:00  Source Code\Arch\HAL\
     目录           0  2012-04-01 11:00  Source Code\Arch\HAL\Include\
     文件        1446  2008-02-20 17:30  Source Code\Arch\HAL\Include\hal_flash.h
     文件       15609  2008-02-20 17:30  Source Code\Arch\HAL\Include\HAL_NRF.H
     文件        9138  2008-02-20 17:30  Source Code\Arch\HAL\Include\hal_nrf_reg.h
     文件       11660  2008-02-21 08:58  Source Code\Arch\HAL\Include\HAL_USB.H
     文件        4632  2008-02-20 17:57  Source Code\Arch\HAL\Include\hal_usb_desc.h
     文件        1164  2008-02-21 08:58  Source Code\Arch\HAL\Include\hal_usb_hid.h
     文件         750  2008-02-20 17:58  Source Code\Arch\HAL\Include\hal_usb_hid_desc.h
     文件        1392  2008-02-20 17:30  Source Code\Arch\HAL\Include\nordic_common.h
     目录           0  2012-04-01 11:00  Source Code\Arch\HAL\nRF24L01\
     文件       12658  2008-02-20 17:34  Source Code\Arch\HAL\nRF24L01\hal_nrf_l01.c
     目录           0  2012-04-01 11:00  Source Code\Arch\HAL\nRF24LU1\
     文件        2413  2012-04-01 11:06  Source Code\Arch\HAL\nRF24LU1\hal_flash.c
     文件         739  2012-04-02 08:50  Source Code\Arch\HAL\nRF24LU1\hal_nrf_hw.c
     文件        1308  2008-02-20 17:30  Source Code\Arch\HAL\nRF24LU1\hal_nrf_hw.h
     文件       27774  2012-04-01 11:11  Source Code\Arch\HAL\nRF24LU1\HAL_USB.C
     文件        3826  2008-02-20 17:56  Source Code\Arch\HAL\nRF24LU1\hal_usb_hid.c
     文件        1824  2008-02-20 17:57  Source Code\Arch\HAL\nRF24LU1\USB.H
     文件        4527  2008-02-21 08:58  Source Code\Arch\HAL\nRF24LU1\USB_MAP.H
     目录           0  2012-04-01 11:00  Source Code\Arch\nRF24LU1\
     文件        1787  2012-04-01 11:12  Source Code\Arch\nRF24LU1\CKLF.C
     文件        2756  2008-02-20 17:55  Source Code\Arch\nRF24LU1\CKLF.H
     文件         778  2012-04-01 11:12  Source Code\Arch\nRF24LU1\CPU.C
     文件         857  2008-02-20 17:55  Source Code\Arch\nRF24LU1\CPU.H
     目录           0  2012-04-01 11:00  Source Code\Builds\
     文件       30800  2008-02-21 10:05  Source Code\Builds\usb_dongle.hex
     文件       14968  2008-02-27 15:30  Source Code\Builds\wdp_keyboard.hex
     目录           0  2012-04-01 11:00  Source Code\Comp\
............此处省略308个文件信息

评论

共有 条评论