您的位置 首页 芯闻

根据MSP430系列单片机的常用程序编写总结

基于MSP430系列单片机的常用程序编写总结-前一段时间一直在用TI公司的MSP430系列的单片机,总结了点430常用的程序框架。

前一段时间一向在用TI公司的MSP430系列的单片机,总结了点430常用的程序结构。

根据MSP430系列单片机的常用程序编写总结

a.循环低功耗、中止服务程序唤醒

void main()

{

封闭开门狗;

初始化时钟

初始化端口;

初始化屏幕;

其他外围必要的初始化;

开中止;

while(1)

{

进入低功耗形式;

履行某函数;

}

}

中止函数1

{

退出低功耗;

中止服务程序;

}

例如:

1 #pragma vector=ADC12_VECTOR

2 __interrupt void ADC12ISR (void) //AD转化中止服务程序

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转化

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.低功耗、中止服务程序

该种结构比较简单,与第一种结构的不同在于主程序没有循环履行某函数。

void main()

{

封闭开门狗;

初始化时钟;

初始化端口;

初始化屏幕;

其他外围必要的初始化;

开大局中止;

进入低功耗;

}

中止服务程序1

{

退出低功耗;

中止服务程序;

}

c.开机设定、低功耗、中止服务程序

void main()

{

封闭开门狗;

初始化时钟;

初始化端口;

初始化屏幕、键盘;

初始化其他外围;

开大局中止;

键盘设定数据,开机初始化;

键入低功耗;

}


中止服务程序1

{

退出低功耗;

中止服务程序;

}

比如在第一种形式里参加开机设定的部分。

d.菜单按键方法

void main()

{

封闭开门狗;

初始化时钟;

初始化端口;

初始化屏幕、键盘;

初始化其他外围;

开大局中止;

while(1)

{

扫描按键;

switch(键值)

{

case…

}

更改显现;

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/347297.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部