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

當前位置:首頁 > 單片機 > 單片機
[導讀]  前一段時間一直在用TI公司的MSP430系列的單片機,總結(jié)了點430常用的程序框架。a.循環(huán)低功耗、中斷服務程序喚醒void main(){  關(guān)閉開門狗;  初始化時鐘;  初始化端口;  初始化屏幕;  其他外圍必要

  前一段時間一直在用TI公司的MSP430系列的單片機,總結(jié)了點430常用的程序框架。

a.循環(huán)低功耗、中斷服務程序喚醒

void main()

{

  關(guān)閉開門狗;

  初始化時鐘;

  初始化端口;

  初始化屏幕;

  其他外圍必要的初始化;

  開中斷;

  while(1)

  {

    進入低功耗模式;

    執(zhí)行某函數(shù);

  }

}

中斷函數(shù)1

{

  退出低功耗;

  中斷服務程序;

}

例如:


1 #pragma vector=ADC12_VECTOR

2 __interrupt void ADC12ISR (void) //AD轉(zhuǎn)換中斷服務程序

3 {

4 static unsigned char index = 0;

5 LPM3_EXIT;

6 switch(__even_in_range(ADC12IV,34))

7 {

8 case 0: break; // Vector 0: No interrupt

9 case 2: break; // Vector 2: ADC overflow

10 case 4: break; // Vector 4: ADC timing overflow

11 case 6: // Vector 6: ADC12IFG0

12 if(index < 8)

13 {

14 results[index] = (ADC12MEM0*2.048/4096);

15 index++;

16 }

17 if(8==index) { index=0; }

18 S_judge=1;

19 break;

20 default: break;

21 }

22 }

23

24 void main()

25

26 {

27

28 WDTCTL = WDTPW + WDTHOLD;

29 Init_CLK() ;

30 LCD_Init() ;

31 Clear_LCD(Color_BK);

32 Init_Port() ;

33 Init_RTC();

34

35 _EINT();  //開全局中斷

36

37 Init_ADC();

38 ADC12CTL0 |= ADC12SC;  //開始AD轉(zhuǎn)換

39 while(1)

40 {

41 LPM3;

42 Show_Clock();

43 if(S_judge==1)

44 {

45 for(int n=0;n

46 {

47 fsum+=fresults[n];

48   }

49 m=fsum/Num_of_Results;

50 sprintf(str,"%02.1f",m);

51 PutStringEN24(104,260,str);

52 fsum=0;

53 S_judge=0;

54 ADC12CTL0 |= ADC12SC;

55

56  }

57 }


b.低功耗、中斷服務程序

  該種結(jié)構(gòu)比較簡單,與第一種結(jié)構(gòu)的差別在于主程序沒有循環(huán)執(zhí)行某函數(shù)。

void main()

{

  關(guān)閉開門狗;

  初始化時鐘;

  初始化端口;

  初始化屏幕;

  其他外圍必要的初始化;

  開全局中斷;

  進入低功耗;

}

中斷服務程序1

{

  退出低功耗;

  中斷服務程序;

}

c.開機設(shè)定、低功耗、中斷服務程序

void main()

{

  關(guān)閉開門狗;

  初始化時鐘;

  初始化端口;

  初始化屏幕、鍵盤;

  初始化其他外圍;

  開全局中斷;

  鍵盤設(shè)定數(shù)據(jù),開機初始化;

  鍵入低功耗;

}


中斷服務程序1

{

  退出低功耗;

  中斷服務程序;

}

比如在第一種模式里加入開機設(shè)定的部分。

d.菜單按鍵方式

void main()

{

  關(guān)閉開門狗;

  初始化時鐘;

  初始化端口;

  初始化屏幕、鍵盤;

  初始化其他外圍;

  開全局中斷;

  while(1)

  {

    掃描按鍵;

    switch(鍵值)

    {

      case...

    }

    更改顯示;

  }

} 


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