日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]在做超聲模塊時用到1 //捕獲上升沿2 void Capture_Pos(void)3 {4 P2SEL |= Echo; //選擇P23作為捕捉的輸入端子 Timer1_A56 //TA1CCTL1 |=CM_3+SCS+CAP+CCIE; //上下沿都觸發(fā)捕捉,用于測脈寬,同步模式、時能

在做超聲模塊時用到



1 //捕獲上升沿

2 void Capture_Pos(void)

3 {

4 P2SEL |= Echo; //選擇P23作為捕捉的輸入端子 Timer1_A

5

6 //TA1CCTL1 |=CM_3+SCS+CAP+CCIE; //上下沿都觸發(fā)捕捉,用于測脈寬,同步模式、時能中斷 CCI1A

7

8 TA1CCTL1 |=CM_1+SCS+CAP+CCIE; //上升沿觸發(fā)捕捉,同步模式、時能中斷 CCI1A

9

10 TA1CTL |= TASSEL1+MC_2; //選擇SMCLK時鐘作為計數(shù)時鐘源,不分頻 增計數(shù)模式不行,必須連續(xù)計數(shù)模式

11

12 }


1 //捕獲下降沿

2 void Capture_Neg(void)

3 {

4 P2SEL |= Echo; //選擇P23作為捕捉的輸入端子 Timer1_A

5

6 TA1CCTL1 |=CM_2+SCS+CAP+CCIE; //下降沿觸發(fā)捕捉,同步模式、時能中斷 CCI1A

7

8 TA1CTL |= TASSEL1+MC_2; //選擇SMCLK時鐘作為計數(shù)時鐘源,不分頻 增計數(shù)模式不行,必須連續(xù)計數(shù)模式

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 //的方法進(jìn)行判斷是哪一個中斷源產(chǎn)生的中斷

11

12 switch(TA1IV) //如果是Timer1_A CC1產(chǎn)生的中斷

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) 認(rèn)為頻率為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 }



中斷處理只需要記住結(jié)果,內(nèi)部邏輯代碼跟模塊有關(guān)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉