在做超声模块时用到

 //捕获上升沿
void Capture_Pos(void)
{
P2SEL |= Echo; //选择P23作为捕捉的输入端子 Timer1_A //TA1CCTL1 |=CM_3+SCS+CAP+CCIE; //上下沿都触发捕捉,用于测脉宽,同步模式、时能中断 CCI1A TA1CCTL1 |=CM_1+SCS+CAP+CCIE; //上升沿触发捕捉,同步模式、时能中断 CCI1A TA1CTL |= TASSEL1+MC_2; //选择SMCLK时钟作为计数时钟源,不分频 增计数模式不行,必须连续计数模式 }

//捕获上升沿

 //捕获下降沿
void Capture_Neg(void)
{
P2SEL |= Echo; //选择P23作为捕捉的输入端子 Timer1_A TA1CCTL1 |=CM_2+SCS+CAP+CCIE; //下降沿触发捕捉,同步模式、时能中断 CCI1A TA1CTL |= TASSEL1+MC_2; //选择SMCLK时钟作为计数时钟源,不分频 增计数模式不行,必须连续计数模式 // TA1R=0; }

//捕获下降沿

 #pragma vector=TIMER1_A1_VECTOR      //Timer1_A CC1  的中断向量

 __interrupt void Timer_A1(void)

 {
unsigned int count;
char countH,countL;
float mile;
UCHAR shi[];
//的方法进行判断是哪一个中断源产生的中断 switch(TA1IV) //如果是Timer1_A CC1产生的中断 { case : // CCR1 not used 捕获/比较器1 {
if(CaptureFlag==)
{
// uart_send_ch('H');
CaptureFlag=;
Capture_Neg();
}
else if(CaptureFlag==)
{
/*
* 声速340m/s = 34cm/ms;
* distance = 34/2*time
* time=count/1000 (ms) 认为频率为1Mhz
* */
// uart_send_ch('L');
count=TA1CCR1;
// countL=(char)(count&0xff);
// countH=(char)(count>>8);
mile=(float)count;
mile=mile/*;
distance=(char)mile;
P1OUT ^= GRN_LED;
uart_send_ch(distance);
// shi[0]=distance/10+0x30;
// shi[1]=distance%10+0x30;
// OLED_SSD1306_Display8x16Str(0,80,&shi[0]);
// OLED_SSD1306_Display8x16Str(0,96, "cm");
CaptureFlag=;
// uart_send_ch(distance);
// uart_send_ch(shi[0]);
// uart_send_ch(shi[1]);
// CaptureFlag=0;
// Capture_Pos(); } break; } case :break; // CCR2 not used 捕获/比较器2 case :break; // overflow 定时器溢出 }

中断处理

中断处理只需要记住结果,内部逻辑代码跟模块有关

MSP430:输入捕获的更多相关文章

  1. STM32之输入捕获以及小小应用(库)

    五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在 ...

  2. stm32cube--通用定时器--输入捕获

    用定时器输入捕获做红外线接收实验.(此次试验以通道2为例) ①stm32cube配置 ② ③ ④程序中主要用到的输入捕获相关寄存器 uint16_t tim_sr,tim_ccer,tim_ccr; ...

  3. STM32F0xx_TIM输入捕获(计算频率)配置详细过程

    前言 关于STM32的定时器,可谓是功能强大,估计没有多少人研究完STM32定时器的所有功能(包括我也没有),只是使用常用的一些功能,后续我会推出关于STM32定时器的更多功能. STM32芯片多数为 ...

  4. CC2530定时器3的输入捕获中断

    CC2530定时器3的输入捕获中断 使用的是tim3的通道1的输入捕获P1_7口.//GPIO配置成复用功能,同时设置P1_7为输入.void irCaptureGpioInit(void){ P1S ...

  5. [STM32F103]PWM输入捕获配置

    l 初始化定时器和通道对应IO的时钟. l 初始化IO口,模式为输入: GPIO_Init(); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0 ...

  6. stm32f103_高级定时器——输入捕获/输出比较中断+pwm=spwm生成

    ****************************首选我们了解一下它们的功能吧********************************************************** ...

  7. STM32输入捕获模式设置并用DMA接收数据

    参考: STM32的PWM输入模式设置并用DMA接收数据 Input capture mode The input stage samples the corresponding TIx input ...

  8. STM32 输入捕获配置

    在STM32 的定时器,除了 TIM6 和 TIM7,就是通过检测 TIMx_CHx 上的 边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候, 将当时定时器 的值(TIMx_CNT) 存放到对 ...

  9. STM32使用定时器实现输入捕获

    输入捕获简介输入捕获模式可以用来测量脉冲宽度或者测量频率.STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能. STM32的输入捕获,简单地说就是通过检测TIMx_CHx上的边沿信 ...

  10. stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)

    STM32外部脉冲ETR引脚:TIM1-->PA12;TIMER2-->PA0:TIMER3-->PD2;TIMER4-->PE0… 1.TIM2 PA0计数 配置步骤 ①开启 ...

随机推荐

  1. Microsoft SQL Server 安全与权限

    Microsoft SQL Server 安全与权限 登陆角色 计算机操作系统用户 --创建Windows身份验证用户 USE [master] GO CREATE LOGIN [计算机名称\计算机用 ...

  2. Docker私有仓库的构建

    [root@localhost ~]# vim /etc/sysconfig/docker #INSECURE_REGISTRY='--insecure-registry' INSECURE_REGI ...

  3. BigDecimal运算

    BigDecimal由任意精度整数未缩放值和32位整数级别组成 . 如果为零或正数,则刻度是小数点右侧的位数. 如果是负数,则数字的非标定值乘以10,以达到等级的否定的幂. 因此,BigDecimal ...

  4. 软件工程师需要了解的网络知识:从铜线到HTTP(一)—— 前言

    转自:https://lvwenhan.com/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/485.html?hmsr=toutiao.io&utm_medium ...

  5. 「 Luogu P2285 」打鼹鼠

    解题思路 第一眼看上去觉得要设计一个三维的 DP,$dp[i][j][k]$ 表示在 $(i,j)$ 这个位置上 $k$ 时刻能够打死的最多的鼹鼠. 但是被数据范围卡死.完全开不开数组啊. 然后注意到 ...

  6. trie字典树模板浅析

    什么是trie? 百度百科 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的 ...

  7. Flask上下文流程图

    如图:

  8. slf4j+log4j2的配置

    昨天自己测试了一下slf4j+log4j2的配置,可以正常使用,虽然配置十分简单,但好记性不如烂笔头,想想还是记录下来吧. 运行的环境:jdk1.7.tomcat7.Maven的web项目 1.在新建 ...

  9. 利用python进行数据分析--(阅读笔记一)

    以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分 ...

  10. hdu——3836 Equivalent Sets

    Equivalent Sets Time Limit: 12000/4000 MS (Java/Others)    Memory Limit: 104857/104857 K (Java/Other ...