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. 解压和生成 system.img&data.img ( ext4格式)

    另一篇文章讲述了如何解压和生成system.img, 那是针对yaffs2格式的文件系统镜像. 目前越来越多的Android手机放弃了nand, 更多采用了emmc为内部存储设备. 以emmc为存储设 ...

  2. android dom方式创建xml

    http://blog.csdn.net/nxh_love/article/details/7085174 在android dom 解析xml方式文章中,简单介绍了dom解析xml的应用.今天在原文 ...

  3. Linux生成core文件、core文件路径设置

    在Linux下产生并调试core文件 先看看我用的是个什么机器: $ uname -aLinux dev 2.4.21-9.30AXsmp #1 SMP Wed May 26 23:37:09 EDT ...

  4. oracle10.2 dblink impd 同库不同用户复制数据

    同库不同用户复制数据 1.授权用户导入表权限; SQL> grant exp_full_database to system; SQL> commit; 2.创建dblink; SQL&g ...

  5. Spring 的优秀工具类盘点第 1 部分

    文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...

  6. poj 2441 Arrange the Bulls(状态压缩dp)

    Description Farmer Johnson's Bulls love playing basketball very much. But none of them would like to ...

  7. (转)iOS Wow体验 - 第五章 - 利用iOS技术特性打造最佳体验

    本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第五章译文精选,其余章节将陆续放出.上一篇:Wow ...

  8. leetcode:Minimum Path Sum(路线上元素和的最小值)【面试算法题】

    题目: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right w ...

  9. webService返回自定义类型的数据处理

    1.自定义一个Student 数据类型: package com.chnic.webservice; import java.io.Serializable; public class Student ...

  10. [Javascript] Redirect the browser using JavaScript

    Three methods to preform redirection in browser: widnow.location.href window.location.assign window. ...