P1.2GPIO配置:

void cap_gpio_init()
{
P1SEL |= 0x04;
P1DIR &= ~0x04;

PERCFG |= 0x40;
P2SEL |= 0x20;

CLKCONCMD |= 0x28;//设置时钟

asm("NOP");//等待时钟稳定
asm("NOP");
asm("NOP");

}
定时器初始化函数:
void timer1Init(void)
{

T1CCTL0 = 0;

T1CTL &= ~0x0c; //clear register
T1CTL |= 0x00; /* Clock pre-scaled by 8 */

T1CTL &= ~0x03;//clear module bits
T1CTL |= 0x01;//选择定时器1模式,01: 自由运行,从0x0000到0xFFFF反复计数

T1CCTL0 &= ~(0x38);
T1CCTL0 |= 0x03; //r and f all cap,边沿触发方式
T1CCTL0 |= 0x40; //enable cap interrupt

IEN1 |= 0x02; //enable timer1 interrupt
}

void time1Config(void)
{
cap_gpio_init();
timer1Init();
}

void timer1Stop(void)
{
T1CTL &= ~0x03;//选择定时器1模式, 00:暂停运行。
}

void timer1Start(void)
{
T1CTL |= 0x03;//选择定时器1模式,11: 正计数/倒计数,从0x0000到T1CC0反复计数并且从T1CC0倒计数到0x0000。
}

学码中断函数(保存高低电平的时间):
void user_timer1_interrupt(void)
{

unsigned char a,b;

if(T1STAT & 0x01)
{
T1STAT &= ~0x01;
irflag = 1 ;

a = T1CC0H ;
b = T1CC0L ;

rec[signle++] = ((a<<8)|b);

T1CNTH = 0;
T1CNTL = 0;
}

if(T1STAT & 0x20)
{

T1STAT &= ~0x20;
if(irflag == 1)
{
irflag = 0;
rec[signle]=0xffff;
T1CNTH = 0;
T1CNTL = 0;
if(signle >= 20)
flag = 1;
signle = 0;

}
T1STAT &= ~0x01;
}

}

注意事项:1. 在使用学码中断时要打开总中断EA, 2.之前我们把我们timer1Start函数加入到主函数中,那样我们使用的是使用的是正计数/倒计数模式,需要设置T1CC0的值,而且中断学码的数据位数也不对,而自由运行模式来实现学码中断,就能学到正确的数据

CC2530红外学习球学码函数(P1.2接红外一体接收头,使用定时器tim1的复用功能2)的更多相关文章

  1. 原生JS研究:学习jquery源码,收集整理常用JS函数

    原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...

  2. 是否应该学习qt源码(碰到问题的时候,或者文档对函数描述不清楚的时候,可以看一下)

    是否应该学习qt源码 如果你想调用某个函数,但是文档并没有清晰描述这个函数的功能的时候,你就需要去阅读源码,看看Qt究竟是怎么实现的.比如用QNetworkAccessManager发送一个QHttp ...

  3. 【菜鸟学习jquery源码】数据缓存与data()

    前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...

  4. Java学习-005-初学常用的几个经典循环控制源代码

    最近一段时间公司 App 改版,一直处在需求评审.代码评审.测试计划.测试用例.用例评审.用例执行.缺陷管理.测试总结的循环中,因而博客也好久没有更新了.虽然工作确实忙了点,但是也是自己懒惰了,从今天 ...

  5. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  6. jQuery源代码学习笔记_工具函数_noop/error/now/trim

    jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...

  7. Pytorch学习之源码理解:pytorch/examples/mnists

    Pytorch学习之源码理解:pytorch/examples/mnists from __future__ import print_function import argparse import ...

  8. 记录我的 python 学习历程-Day13 匿名函数、内置函数 II、闭包

    一.匿名函数 以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数. 课上练习: # 正常函数: def func(a, b): return a + b print(func(4, 6)) ...

  9. Bash脚本编程学习笔记08:函数

    官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...

随机推荐

  1. 我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面

    一.前言 “尼玛哥,上周你教我改了下OA系统UI,黄总看了很满意呀.”    “不错不错,看来小美进步很大,可以提前结束试用期,到时候加工资别忘了请我吃饭呀!”    “尼玛哥,你有女朋友了吗?” “ ...

  2. 『安全工具』目录扫描 DirBuster AND 御剑

    要想熟悉目标网站的体系架构,知道网站有哪些目录是必不可少的 向AWVS,Burp类大型扫描工具也可以进行目录扫描,不过个人感觉远没有专业扫描工具来的简单,实在 0x 01 DirBuster 简介:D ...

  3. Keil C调试经验

    我们使用Keil C调试某系统时积累的一些经验:     1.由于Keil C对中文支持不太好,因而会出现显示的光标与光标实际所在不一致的现象,这会对修改中文注释造成影响.在Windows2000下面 ...

  4. Qt编程之通过鼠标滚轮事件缩放QGraphicsView里面的Item

    首先自己subclass QGraphicsView的一个类,叫DiagramView,然后重新实现它的滚轮事件函数,然后发送一个缩放信号: oid DiagramView::wheelEvent(Q ...

  5. 11G在线重建索引

    SQL> select count(*) from test_idx; COUNT(*) ---------- 19087751 SQL> select segment_name,segm ...

  6. library cache: mutex X

    我们先来看看 library cache: mutex X . 是个什么东西 The library cache mutex is acquired for similar purposes that ...

  7. MapReduce流程、如何统计任务数目以及Partitioner

    核心功能描述 应用程序通常会通过提供map和reduce来实现 Mapper和Reducer接口,它们组成作业的核心. Map是一类将输入记录集转换为中间格式记录集的独立任务. 这种转换的中间格式记录 ...

  8. 写在学习linux内核协议栈之前

    一直很喜欢内核,但是新手,非常的痛苦啊.现在看一本linux内核协议栈源码解析一书,将自己学习的经历以及 理解记录下来,以备将来回头查漏补缺,同时校正自己的理解错误,自勉

  9. NUnit - 使用感受

    Nunit使用 最近项目开始大量使用Nunit, 发现Nunit还是有很多好处的. 1. 测试驱动逻辑,这样可以尽最大可能减少“修改”引入的Bug. 如果你修改了一些东西,导致Case跑不过.请检查你 ...

  10. wex5添加视频播放

    我使用的播放器是ckplayer http://www.ckplayer.com/ ckplayer存放路,项目路径下: 方法一: 在monitor.w里加一个div标签 <div id=&qu ...