13788|7

99

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

msp432出现的各种问题!!! [复制链接]

    这432的板子用了几天发现些问题,特意来此吐槽。

    首先官方例程的注释有明显的笔误,我遇到的就是一个IO口比如明明是用的P1.2,然后注释的时候写成P3.5。这个由于当时也不太在意,所以也忘了具体是那一个例程了,就不贴图了。

    这个不影响使用也就算了,但是后来又发现它的例程文件又有个非常明显的错误。比如这个文件
    错误代码为:

  1. void adc14IsrHandler(void)
  2. {
  3.     /* Clear ADC14 IFG */
  4.     ADC14CLRIFGR0 = CLRADC14IFG20;
  5. }
复制代码
    这个程序明明读取的是mem0的数据,却把mem20的中断标志位清零,导致中断 根本没有清除,程序一直停留在中断服务程序里面,后面的代码也就不起作用了,现象什么的肯定也是错的了。


    这个错误仔细看看也能发现,我就继续忍了。但是我后来发现它的驱动函数居然也有错的!!我发现的错误的驱动函数为adc的转换读取结果读取函数,在adc14.c里面。如下:

  1. uint_fast16_t ADC14_getResult(uint32_t memorySelect)
  2. {
  3.     return *((uint16_t*) (_ctlRegs[_getIndexForMemRegister(memorySelect)] + 0x80));
  4. }
复制代码
   这个函数其实就是读取ADC14MEMx(x为0~31)的值然后返回。_ctlRegs[_getIndexForMemRegister(memorySelect)是ADC14MCTLx的地址,ADC14MEMx的地址与其固定相差0x80,所以它加了一个0x80。但是ADC14MCTLx是一个32位的寄存器啊,你直接把指向这个寄存器的指针加上0x80就相当于把地址加上了0x80*4,结果读出来的数据不用想也是错的了,所以正确的做法应该是加上一个0x20。所以它的各种读取结果的函数估计都出错了......驱动函数目的就是为了简化开发流程,很多人估计都会使用,部分人还会直接使用库文件连源文件也不添加,但是出现了这种错误调试时应该很难查出来。我怀疑ti有没有对这个驱动函数库进行过认真的测试。

    发现的错误暂时就是这么多了,但是还有些槽点要吐一下,msp432也许过于看重和msp430的兼容了,结果很多外设控制寄存器还是16位的,比如定时器的计数器和重装载寄存器,其实我觉得做成32位的应该会比较方便,16位的计数值有些时候有点小了。当然432也有32位的定时器,但是只具备周期计数的功能,比较和输入捕获也没。另外这个芯片的adc是一大亮点,但是例程实在是有点少了,最主要的是使用DMA对转换数据进行传输的一个都没有,摸索起来也有点不方便。

    唉,不知道大家发现什么错误。吐了这么久的槽,真有点累了

QQ截图20150508171447.jpg (14.25 KB, 下载次数: 0)

QQ截图20150508171447.jpg

最新回复

PWM那个我试了两天,后来仔细把MSP432P4xx Family Technical Referencr Manual.pdf 这个文件看完才发现一个问题就是PWM要打开CCR的中断。 const Timer_A_PWMConfig  pwmConfig =         {                         TIMER_A_CLOCKSOURCE_SMCLK,                         TIMER_A_CLOCKSOURCE_DIVIDER_48,                         300,                         TIMER_A_CAPTURECOMPARE_REGISTER_1,                         TIMER_A_OUTPUTMODE_SET_RESET,                         250                        };         Timer_A_generatePWM(TIMER_A0_MODULE,&pwmConfig);         Timer_A_registerInterrupt(TIMER_A0_MODULE,TIMER_A_CCR0_INTERRUPT,pwm_ISR_Handle);                 Timer_A_enableInterrupt(TIMER_A0_MODULE); 中断函数为空  详情 回复 发表于 2015-8-24 17:24

赞赏

1

查看全部赞赏

 
点赞 关注

回复
举报

9798

帖子

24

TA的资源

版主

沙发
 
我在看CC2640时发现ADC的参数描述是
  • 12 位模数转换器 (ADC)、200MSPS、8 通道模拟多路复用器


到现在我都不知道他们是把200KSPS写错了,还是CC2640真有200MSPS这么高的采样率,不过这款处理器的主频才48MHz啊。






 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 

回复

9798

帖子

24

TA的资源

版主

板凳
 
代码注释这种情况其它MSP430单片机遇到过,代码本身的毛病不太应该。

理论上这些例程工程师应该跑过才对。
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

45

帖子

1

TA的资源

一粒金砂(中级)

4
 
我也碰到一些注释的错误。还有我的CCS6.1还没有license,不能调试啊,楼主那里有么?
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
岂止这些错误,我调的脑袋都大了,特别是库函数,有一个产生pwm波的函数根本就用不了,还有捕获,没有pwm输入模式就算了,可是普通的捕获也是各种奇葩问题,配置之后它执行一个指令竟然要1.7us!!!真的不知道该怎么继续调下去了

点评

那你可以把你的问题,单独发主题帖,大家会帮你一块解决的  详情 回复 发表于 2015-7-24 09:31
 
 
 

回复

6066

帖子

90

TA的资源

裸片初长成(初级)

6
 
Glacier 发表于 2015-7-23 19:59
岂止这些错误,我调的脑袋都大了,特别是库函数,有一个产生pwm波的函数根本就用不了,还有捕获,没有pwm输 ...

那你可以把你的问题,单独发主题帖,大家会帮你一块解决的
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

8
 
Glacier 发表于 2015-7-23 19:59
岂止这些错误,我调的脑袋都大了,特别是库函数,有一个产生pwm波的函数根本就用不了,还有捕获,没有pwm输 ...

PWM那个我试了两天,后来仔细把MSP432P4xx Family Technical Referencr Manual.pdf 这个文件看完才发现一个问题就是PWM要打开CCR的中断。

const Timer_A_PWMConfig  pwmConfig =
        {
                        TIMER_A_CLOCKSOURCE_SMCLK,
                        TIMER_A_CLOCKSOURCE_DIVIDER_48,
                        300,
                        TIMER_A_CAPTURECOMPARE_REGISTER_1,
                        TIMER_A_OUTPUTMODE_SET_RESET,
                        250               
        };

        Timer_A_generatePWM(TIMER_A0_MODULE,&pwmConfig);

        Timer_A_registerInterrupt(TIMER_A0_MODULE,TIMER_A_CCR0_INTERRUPT,pwm_ISR_Handle);
       
        Timer_A_enableInterrupt(TIMER_A0_MODULE);

中断函数为空
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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