CC2530红外学习球学码函数(P1.2接红外一体接收头,使用定时器tim1的复用功能2)
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)的更多相关文章
- 原生JS研究:学习jquery源码,收集整理常用JS函数
原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...
- 是否应该学习qt源码(碰到问题的时候,或者文档对函数描述不清楚的时候,可以看一下)
是否应该学习qt源码 如果你想调用某个函数,但是文档并没有清晰描述这个函数的功能的时候,你就需要去阅读源码,看看Qt究竟是怎么实现的.比如用QNetworkAccessManager发送一个QHttp ...
- 【菜鸟学习jquery源码】数据缓存与data()
前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...
- Java学习-005-初学常用的几个经典循环控制源代码
最近一段时间公司 App 改版,一直处在需求评审.代码评审.测试计划.测试用例.用例评审.用例执行.缺陷管理.测试总结的循环中,因而博客也好久没有更新了.虽然工作确实忙了点,但是也是自己懒惰了,从今天 ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- jQuery源代码学习笔记_工具函数_noop/error/now/trim
jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ...
- Pytorch学习之源码理解:pytorch/examples/mnists
Pytorch学习之源码理解:pytorch/examples/mnists from __future__ import print_function import argparse import ...
- 记录我的 python 学习历程-Day13 匿名函数、内置函数 II、闭包
一.匿名函数 以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数. 课上练习: # 正常函数: def func(a, b): return a + b print(func(4, 6)) ...
- Bash脚本编程学习笔记08:函数
官方资料:Shell Functions (Bash Reference Manual) 简介 正如我们在<Bash脚本编程学习笔记06:条件结构体>中最后所说的,我们应该把一些可能反复执 ...
随机推荐
- Altium Designer 覆铜时过孔连接形式的设置——只将过孔连接设置为Direct Connect
Altium Designer 在PCB覆铜时,所有的过孔和焊盘都是十字连接即Relief Connect连接的,没有像PROTEL 99SE一样只有接地的焊盘才是十字连接而过孔是直接连接的. 如下图 ...
- vs2010 suite integration toolkit execution
原因是UltraDeamen的问题,重新换个WinMount来解压ISO文件.完美安装运行
- js深入研究之函数内的函数
第一种 function foo() { ; function bar() { a *= ; } bar(); return a; } 第二种 function foo() { ; function ...
- NOI 2013 矩阵游戏
http://uoj.ac/problem/124 矩阵乘法. 十进制快速幂. 刚开始还傻傻地写二进制快速幂,然后陈老师一语点醒梦中人...... #include<cstdio> #in ...
- Codeforce 220 div2
D 插入: 在当前指针位置sz处插入一个1,col[sz]记录插入的内容,sz++; 删除i: 找到第i个1的位置,赋为0; 于是转化为一个维护区间和的问题; trick: 如果是依次删除a[0],a ...
- (转)Android’s HTTP Clients
转载自:http://android-developers.blogspot.com/2011/09/androids-http-clients.html Most network-connected ...
- [原创作品]web网页中的锚点
因为近来在从事web前端开发的工作,所以写的文章也都是关于web这一块.以后将分享算法和web高级编程的内容,很多公司的web前端不够重视,以为是很low-level,给的待遇也很一般,其实,这都是很 ...
- web前端代码规范 - HTML代码规范
Bootstrap HTML编码规范 本文转载自w3cschool. 由于bootstrap得到了世界的认可,因此,此规范用于规范html代码有一定的说服力. 交流qq群:164858883.欢迎各位 ...
- maven pom.xml具体解释(整理)
pom作为项目对象模型. 通过xml表示maven项目,使用pom.xml来实现.主要描写叙述了项目:包含配置文件.开发人员须要遵循的规则,缺陷管理系统.组织和licenses,项目的url,项目的依 ...
- POJ 1322 Chocolate
Chocolate Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8245 Accepted: 2186 Speci ...