设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 7987|回复: 6
打印 上一主题 下一主题

NRF51822 定时器中断

[复制链接]

1

主题

5

帖子

50

积分

注册会员

Rank: 2

积分
50
跳转到指定楼层
楼主
wolfdong7 发表于 2015-6-2 09:12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
教程的定时器中断,感觉像延时一样。

能不能像中断一样,设置初始值,计数到了,跳入IRQ里面处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖
回复

使用道具 举报

1

主题

5

帖子

50

积分

注册会员

Rank: 2

积分
50
沙发
 楼主| wolfdong7 发表于 2015-6-2 11:28:03 | 只看该作者
已解决!代码工程:http://pan.baidu.com/s/1pr9IQ

#include "nrf51.h"
#include "nrf_gpio.h"
#include "led.h"
#include "time.h"
#include <stdbool.h>
#include <stdint.h>

void time1_init(void)  //&para;¨&Ecirc;±&AElig;÷&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;,&para;¨&Ecirc;±1s
{

    NRF_TIMER2->MODE        = TIMER_MODE_MODE_Timer;
    NRF_TIMER2->PRESCALER   = 9;  //Ftimer  = 31250 Hz   =32us

    NRF_TIMER2->CC[2]       = (31250U);  //=32us*31250=1s
    NRF_TIMER2->INTENSET    = TIMER_INTENSET_COMPARE2_Enabled << TIMER_INTENSET_COMPARE2_Pos;


    NRF_TIMER2->SHORTS      = (TIMER_SHORTS_COMPARE1_CLEAR_Enabled << TIMER_SHORTS_COMPARE1_CLEAR_Pos);
               
                NVIC_ClearPendingIRQ(TIMER2_IRQn);
    NVIC_SetPriority(TIMER2_IRQn,3);
                NVIC_EnableIRQ(TIMER2_IRQn);  
          NRF_TIMER2->TASKS_START = 1; //&iquest;&ordf;&AElig;&ocirc;&para;¨&Ecirc;±&AElig;÷
}
void TIMER2_IRQHandler(void)  //&para;¨&Ecirc;±&AElig;÷&Ouml;&ETH;&para;&Iuml;&Auml;&pound;&Ecirc;&frac12;·&thorn;&Icirc;&ntilde;&ordm;&macr;&Ecirc;&yacute;
{

    if ((NRF_TIMER2->EVENTS_COMPARE[2] == 1) && (NRF_TIMER2->INTENSET & TIMER_INTENSET_COMPARE2_Msk))
    {
      NRF_TIMER2->EVENTS_COMPARE[2] = 0;
   
      LED2_UN;//&micro;&ccedil;&AElig;&frac12;·&shy;×&ordf;


                         NRF_TIMER2->TASKS_CLEAR = 1; //&Ccedil;&aring;&sup3;&thorn;&frac14;&AElig;&Euml;&atilde;
    }

}

int main(void)
{
  LED_Init();
        KEY_Init();
        EXIT_Init();
                time1_init(); //&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;time&pound;&raquo;
  LED1_ON;
        LED2_ON;       
        LED2_UN;
       
  // LED 0 and LED 1 blink alternately.
  while(1)
  {
           
                                               
   
    nrf_delay_ms(500);
   
   
   
    nrf_delay_ms(500);
  }
}
回复 支持 反对

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
板凳
admin 发表于 2015-6-5 11:33:35 | 只看该作者
wolfdong7 发表于 2015-6-2 11:28
已解决!代码工程:http://pan.baidu.com/s/1pr9IQ

#include "nrf51.h"

这个要支持
回复 支持 反对

使用道具 举报

1

主题

5

帖子

50

积分

注册会员

Rank: 2

积分
50
地板
 楼主| wolfdong7 发表于 2015-6-6 14:30:49 | 只看该作者

谢谢!
期待版主为我们新手写出更多的好教程来。
回复 支持 反对

使用道具 举报

9

主题

18

帖子

128

积分

注册会员

Rank: 2

积分
128
5#
ldcung 发表于 2015-9-5 13:40:40 | 只看该作者
wolfdong7 发表于 2015-6-2 11:28
已解决!代码工程:http://pan.baidu.com/s/1pr9IQ

#include "nrf51.h"

赞一个,正需要它。
回复 支持 反对

使用道具 举报

1

主题

14

帖子

68

积分

注册会员

Rank: 2

积分
68
QQ
6#
vipfanghui 发表于 2015-11-17 14:40:24 | 只看该作者
wolfdong7 发表于 2015-6-2 11:28
已解决!代码工程:http://pan.baidu.com/s/1pr9IQ

#include "nrf51.h"

大赞,正需要这个。
回复 支持 反对

使用道具 举报

12

主题

29

帖子

161

积分

注册会员

Rank: 2

积分
161
7#
sinba 发表于 2015-11-26 11:31:22 | 只看该作者
那天也研究了好久没搞明白;谢谢楼主了
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-11-26 21:01 , Processed in 0.464011 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表