3108|2

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于MSP430F5529的ADC数据读取问题 [复制链接]

用的是430ware里的例程,但是我debug的时候,results数组的值全部都是0,也就是没有读取。直接看寄存器值是正常的。
我看到一条错误是说:cannot load from non-primitive location,意思是不能以非源类型(char,int之类的)加载。

求问大家应该如何解决,我是用TI的例程原封不动的,不知道为何出现这种情况。
  1. #include <msp430.h>

  2. #define   Num_of_Results   8
  3.   
  4. volatile unsigned int results[Num_of_Results];
  5.                                             // Needs to be global in this
  6.                                             // example. Otherwise, the
  7.                                             // compiler removes it because it
  8.                                             // is not used for anything.

  9. int main(void)
  10. {
  11.   WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  12.   P6SEL |= 0x01;                            // Enable A/D channel A0
  13.   ADC12CTL0 = ADC12ON+ADC12SHT0_8+ADC12MSC; // Turn on ADC12, set sampling time
  14.                                             // set multiple sample conversion
  15.   ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2;       // Use sampling timer, set mode
  16.   ADC12IE = 0x01;                           // Enable ADC12IFG.0
  17.   ADC12CTL0 |= ADC12ENC;                    // Enable conversions
  18.   ADC12CTL0 |= ADC12SC;                     // Start conversion
  19.   
  20.   __bis_SR_register(LPM4_bits + GIE);       // Enter LPM4, Enable interrupts
  21.   __no_operation();                         // For debugger
  22.   
  23. }


  24. #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
  25. #pragma vector=ADC12_VECTOR
  26. __interrupt void ADC12ISR (void)
  27. #elif defined(__GNUC__)
  28. void __attribute__ ((interrupt(ADC12_VECTOR))) ADC12ISR (void)
  29. #else
  30. #error Compiler not supported!
  31. #endif
  32. {
  33.   static unsigned char index = 0;

  34.   switch(__even_in_range(ADC12IV,34))
  35.   {
  36.   case  0: break;                           // Vector  0:  No interrupt
  37.   case  2: break;                           // Vector  2:  ADC overflow
  38.   case  4: break;                           // Vector  4:  ADC timing overflow
  39.   case  6:                                  // Vector  6:  ADC12IFG0
  40.     results[index] = ADC12MEM0;             // Move results
  41.     index++;                                // Increment results index, modulo; Set Breakpoint1 here
  42.    
  43.     if (index == 8)
  44.     {
  45.       index = 0;
  46.     }
  47.   case  8: break;                           // Vector  8:  ADC12IFG1
  48.   case 10: break;                           // Vector 10:  ADC12IFG2
  49.   case 12: break;                           // Vector 12:  ADC12IFG3
  50.   case 14: break;                           // Vector 14:  ADC12IFG4
  51.   case 16: break;                           // Vector 16:  ADC12IFG5
  52.   case 18: break;                           // Vector 18:  ADC12IFG6
  53.   case 20: break;                           // Vector 20:  ADC12IFG7
  54.   case 22: break;                           // Vector 22:  ADC12IFG8
  55.   case 24: break;                           // Vector 24:  ADC12IFG9
  56.   case 26: break;                           // Vector 26:  ADC12IFG10
  57.   case 28: break;                           // Vector 28:  ADC12IFG11
  58.   case 30: break;                           // Vector 30:  ADC12IFG12
  59.   case 32: break;                           // Vector 32:  ADC12IFG13
  60.   case 34: break;                           // Vector 34:  ADC12IFG14
  61.   default: break;
  62.   }
  63. }
复制代码

最新回复

代码都没改就解决了? 以后请多发贴  详情 回复 发表于 2017-6-1 11:05
 
点赞 关注

回复
举报

4

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
好吧,发完贴之后问题就解决了,不知道什么回事,也许是玄学吧

点评

代码都没改就解决了? 以后请多发贴  详情 回复 发表于 2017-6-1 11:05
 
 

回复

9720

帖子

24

TA的资源

版主

板凳
 
飞马君 发表于 2017-6-1 10:58
好吧,发完贴之后问题就解决了,不知道什么回事,也许是玄学吧

代码都没改就解决了?

以后请多发贴
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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