当前位置:首页 > 单片机 > 单片机
[导读]在做超声模块时用到1 //捕获上升沿2 void Capture_Pos(void)3 {4 P2SEL |= Echo; //选择P23作为捕捉的输入端子 Timer1_A56 //TA1CCTL1 |=CM_3+SCS+CAP+CCIE; //上下沿都触发捕捉,用于测脉宽,同步模式、时能

在做超声模块时用到



1 //捕获上升沿

2 void Capture_Pos(void)

3 {

4 P2SEL |= Echo; //选择P23作为捕捉的输入端子 Timer1_A

5

6 //TA1CCTL1 |=CM_3+SCS+CAP+CCIE; //上下沿都触发捕捉,用于测脉宽,同步模式、时能中断 CCI1A

7

8 TA1CCTL1 |=CM_1+SCS+CAP+CCIE; //上升沿触发捕捉,同步模式、时能中断 CCI1A

9

10 TA1CTL |= TASSEL1+MC_2; //选择SMCLK时钟作为计数时钟源,不分频 增计数模式不行,必须连续计数模式

11

12 }


1 //捕获下降沿

2 void Capture_Neg(void)

3 {

4 P2SEL |= Echo; //选择P23作为捕捉的输入端子 Timer1_A

5

6 TA1CCTL1 |=CM_2+SCS+CAP+CCIE; //下降沿触发捕捉,同步模式、时能中断 CCI1A

7

8 TA1CTL |= TASSEL1+MC_2; //选择SMCLK时钟作为计数时钟源,不分频 增计数模式不行,必须连续计数模式

9

10 // TA1R=0;

11

12 }


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

2

3 __interrupt void Timer_A1(void)

4

5 {

6 unsigned int count;

7 char countH,countL;

8 float mile;

9 UCHAR shi[2];

10 //的方法进行判断是哪一个中断源产生的中断

11

12 switch(TA1IV) //如果是Timer1_A CC1产生的中断

13

14 {

15

16 case 2: // CCR1 not used 捕获/比较器1

17

18 {

19 if(CaptureFlag==0)

20 {

21 // uart_send_ch('H');

22 CaptureFlag=1;

23 Capture_Neg();

24 }

25 else if(CaptureFlag==1)

26 {

27 /*

28 * 声速340m/s = 34cm/ms;

29 * distance = 34/2*time

30 * time=count/1000 (ms) 认为频率为1Mhz

31 * */

32 // uart_send_ch('L');

33 count=TA1CCR1;

34 // countL=(char)(count&0xff);

35 // countH=(char)(count>>8);

36 mile=(float)count;

37 mile=mile/1000*17;

38 distance=(char)mile;

39 P1OUT ^= GRN_LED;

40 uart_send_ch(distance);

41 // shi[0]=distance/10+0x30;

42 // shi[1]=distance%10+0x30;

43 // OLED_SSD1306_Display8x16Str(0,80,&shi[0]);

44 // OLED_SSD1306_Display8x16Str(0,96, "cm");

45 CaptureFlag=2;

46 // uart_send_ch(distance);

47 // uart_send_ch(shi[0]);

48 // uart_send_ch(shi[1]);

49 // CaptureFlag=0;

50 // Capture_Pos();

51

52 }

53

54

55 break;

56

57 }

58

59 case 4:break; // CCR2 not used 捕获/比较器2

60

61 case 10:break; // overflow 定时器溢出

62

63 }



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


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

摘 要:为了能通过串口采集电能参数,完成一种基于串口的三相电能采集设备的研制,设计了电能采集设备的硬件和软件部分。其中硬件采用MCU+专用电能计量芯片的结构,结构简单;软件则用于实现输入、输出、三相电能参数的采集和串行通...

关键字: 电能采集 ATT7022B MSP430 串口

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器技术,这些功能可以变得更加智能和经济。TI 推出的MSP430™MCU 可以帮助您在楼宇自动化解决方案中,...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器技术,这些功能可以变得更加智能和经济。TI 推出的MSP430™MCU 可以帮助您在楼宇自动化解决方案中,...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器(MCU)技术,这些功能可以变得更加智能和经济。为设计出更出色的楼宇自动化解决方案,应选择合适的元件来实现...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!楼宇自动化系统具备多种功能,可在工业和商业环境中提升工作者的舒适度和安全性。通过创新微控制器(MCU)技术,这些功能可以变得更加智能和经济。为设计出更出色的楼宇自动化解决方案,应选择合适的元件来实现...

关键字: MCU MSP430 楼宇自动化

点击上方蓝字关注我们!让我们试想一下一种可以减少模拟组件数量并缩小电路板尺寸的设计。使用这种设计,您可以针对特定应用定制功能,并针对性能、功耗、尺寸和成本进行优化。现在,一个简单的MSP430™MCU就可以满足上述所有功...

关键字: MCU MSP430

作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。

关键字: 3寸TFT MSP430 驱动

液位测控仪是属于智能化仪器仪表的一种(指采用了微处理器的仪器仪表),其发展始于70年代。它是一种集测量与控制于一体的智能化产品,适用于石油化工、冶金、电力、制药、环保等行业中各种介质的液位测量。

关键字: MSP430 单片机 称重式液位仪

空间定向测试仪是一种应用非常广泛的电子测量仪器,尤其是伴随着微电子技术的发展,空间定向测试仪在车辆、舰船、飞行器等导航领域中的应用日趋成熟。

关键字: MSP430 超低功耗 空间定向测试仪
关闭
关闭