当前位置:首页 > 单片机 > 单片机
[导读]在做超声模块时用到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 }



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


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