247|0

1125

帖子

0

资源

纯净的硅(中级)

关于MSP430单片机常用程序框架 [复制链接]

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

void main()

{

  关闭开门狗;

  初始化时钟;

  初始化端口;

  初始化屏幕;

  其他外围必要的初始化;

  开中断;

  while(1)

  {

    进入低功耗模式;

    执行某函数;

  }

}

 

中断函数1

{

  退出低功耗;

  中断服务程序;

}

 

例如:

View Code 
 #pragma vector=ADC12_VECTOR
 __interrupt void ADC12ISR (void)  //AD转换中断服务程序
 {
   static unsigned char index = 0;
   LPM3_EXIT;
   switch(__even_in_range(ADC12IV,34))
   {
   case  0: break;                           // Vector  0:  No interrupt
   case  2: break;                           // Vector  2:  ADC overflow
   case  4: break;                           // Vector  4:  ADC timing overflow
   case  6:                                  // Vector  6:  ADC12IFG0
     if(index < 8)
     {
       results[index] = (ADC12MEM0*2.048/4096);
       index++;
     }
     if(8==index) { index=0; }
     S_judge=1;
     break;
   default: break;
   }
 }
 
 void main()
 
 {
 
   WDTCTL = WDTPW + WDTHOLD;
   Init_CLK()  ;
   LCD_Init()  ;
   Clear_LCD(Color_BK);
   Init_Port() ;
   Init_RTC();
 
   _EINT();  //开全局中断
 
   Init_ADC();
   ADC12CTL0 |= ADC12SC;  //开始AD转换
   while(1)
   {
        LPM3;
        Show_Clock();
     if(S_judge==1)
     {
         for(int n=0;n<Num_of_Results;n++)
         {
           fsum+=fresults[n];
       }
        m=fsum/Num_of_Results;
         sprintf(str,"%02.1f",m);
         PutStringEN24(104,260,str);
         fsum=0;
         S_judge=0;
         ADC12CTL0 |= ADC12SC;
 
  }
 }
 

b.低功耗、中断服务程序

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

void main()

{

  关闭开门狗;

  初始化时钟;

  初始化端口;

  初始化屏幕;

  其他外围必要的初始化;

  开全局中断;

  进入低功耗;

}

中断服务程序1

{

  退出低功耗;

  中断服务程序;

}

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

void main()

{

  关闭开门狗;

  初始化时钟;

  初始化端口;

  初始化屏幕、键盘;

  初始化其他外围;

  开全局中断;

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

  键入低功耗;

}


中断服务程序1

{

  退出低功耗;

  中断服务程序;

}

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

d.菜单按键方式

void main()

{

  关闭开门狗;

  初始化时钟;

  初始化端口;

  初始化屏幕、键盘;

  初始化其他外围;

  开全局中断;

  while(1)

  {

    扫描按键;

    switch(键值)

    {

      case...

    }

    更改显示;

  }

} 


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表