作者:星希望(QQ:411057286)
转载请声明出处
涉及代码文件已上传到本站,搜索 “ nRf24le1旺哥整理的代码 ” ,欢迎留言讨论;
创作背景
最近在搞一个RFID的项目,在短距离(0–5米内)识别电子标签,并能读取出标签的ID号;
迫于无源RFID读写距离太近,所以选择了有源RFID;
在查阅相关资料后,芯片锁定为nRf24LE1
在某宝上购买到开发板后,发现卖家给的资料简直一塌糊涂,遂决心自己编写寄存器驱动;
以下代码仅作为模块化参考,读者们在引用过程中需要根据自身情况做适当修改;
第课 -
直接贴代码:
文件名:.h
/********************** 分 割 线 **********************/
#ifndef Timer0_H
#define Timer0_H
#include “sys.h”
void Timer0_init(void);
#endif
/********************** 分 割 线 **********************/
文件名:.c
/************************************************************************
- 定时器0驱动
- 作者:星希望(QQ:411057286)
- 日期:2019年5月8日
************************************************************************/
#include “Timer0.h”
#include “LED.h”
//函数的定义部分
#define Timer0_Period 30000
/************************************************************************
-
初始化
************************************************************************/
void Timer0_init(void)
{
TMOD |= 0x01;
TH0 = (65536-Timer0_Period)>>8;
TL0 = (65536-Timer0_Period)&0xff;
TR0 = 1; // 启动计数器ET0 = 1;
EA = 1;
}
/************************************************************************
-
定时器0中断服务函数
************************************************************************/
void time0service() interrupt INTERRUPT_T0
{
static char num=0;
TH0 = (65536-Timer0_Period)>>8;
TL0 = (65536-Timer0_Period)&0xff;
num++;
if(num==50)
{
num = 0;/* 用户代码 */ led_0 = ~led_0;
}
}
/********************** 分 割 线 **********************/
文件名:main.c
/************************************************************************
- NRF24LE1
- TIMER0 - 已校验
- 作者:星希望(QQ:411057286)
- 日期:2019年5月8日
************************************************************************/
#include “LED.h”
#include “Timer0.h”
#include “Clock.h”
/************************************************************************
-
主函数
************************************************************************/
void main(void)
{
Clock_sel_XOSC_16MHz();
LED_init();
Timer0_init();while(1)
{}
}