nRf24le1旺哥整理的代码5 - 定时器0

作者:星希望(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)
    {

    }
    }

工程截图如下:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值