测试哪里出问题了

[复制链接]
1194|25
 楼主| heweibig 发表于 2017-6-30 21:53 | 显示全部楼层 |阅读模式
原本想优化一下模拟IIC通讯的时序,使原有延时尽量缩短,但后来发现实际测量的指令周期和手册上写的不符,不知为什么~望高手指点。

我用的芯片型号是MSP430F5438 测试代码如下:
#include <msp430.h>
main()
{
  WDTCTL = WDTPW + WDTHOLD;   
  UCSCTL3 = 0;                              
  UCSCTL0 |= 16 << 8;                     
  UCSCTL1 = DCORSEL_4;                  
  UCSCTL2 = 149;                             
  UCSCTL6 &= ~(XT1DRIVE_3);         
  UCSCTL4 = SELA_0 + SELS_3 + SELM_3;              
                                            
P6DIR = 0xFF;
P6OUT = 0xFF;
P6OUT = 0x00;
P6OUT = 0xFF;
P6OUT = 0x00;

while(1);
}
外部接32768Hz晶振,经过150倍频后,MCLK约为4.9MHz,此时一个指令周期约203ns。
P6OUT = 0xFF;和 P6OUT = 0x00;两句的汇编代码是
mov.b #0xFF, &PCOUT_H 和 clr.b &PCOUT_H
根据手册执行这两句的时间我认为应该是4+4 = 8个时钟周期(约1600ns)。
而示波器上观察输出方波的周期为700ns而我觉得该时间和执行P6OUT = 0xFF; P6OUT = 0x00;两句的时间应该是相同的。

求指点:我的测试哪里出问题了呢~?
午夜粪车 发表于 2017-6-30 21:54 | 显示全部楼层
你的while(1)循环在这里是延时作用    我感觉应该是延时时间不足    或者哪边出现误差
 楼主| heweibig 发表于 2017-6-30 21:55 | 显示全部楼层
哦,那我看下
liliang9554 发表于 2017-6-30 21:57 | 显示全部楼层

时钟配置和手册里的是否一致啊?
午夜粪车 发表于 2017-6-30 22:18 | 显示全部楼层
楼主不要纠结这个,能用就好,我觉得,肯定是你计算有误,或者那个指令换算不对。
zhaoxqi 发表于 2017-6-30 22:29 | 显示全部楼层

有怀疑精神挺好,但估计是你测试方法不恰当
zhenykun 发表于 2017-6-30 22:31 | 显示全部楼层
肯定测量为准
 楼主| heweibig 发表于 2017-6-30 22:33 | 显示全部楼层
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先
aspoke 发表于 2017-7-2 10:43 | 显示全部楼层
iic有什么不同吗、
232321122 发表于 2017-7-2 10:43 | 显示全部楼层
怎么不使用12Mhz的晶振呢
ghuca 发表于 2017-7-2 10:44 | 显示全部楼层
以前用的AT89S52是12个周期执行一次指令。
soodesyt 发表于 2017-7-2 10:45 | 显示全部楼层
楼主的测试是哪里有问题吗?
mnynt121 发表于 2017-7-2 10:45 | 显示全部楼层
MSP430 的时钟周期(振荡周期) 、机器周期、指令周期之间
plsbackup 发表于 2017-7-2 10:45 | 显示全部楼层
如果MCLK是8M,则一个时钟周期为1/8微秒
kmzuaz 发表于 2017-7-2 10:46 | 显示全部楼层
430每个动作都能完成一个基本操作
qiufengsd 发表于 2017-7-2 10:46 | 显示全部楼层
也就是说执行一条指令最多花6*1/8微秒。
wengh2016 发表于 2017-7-2 10:47 | 显示全部楼层
你用的是IAR软件么,高版本的直接在软件内就可以查看。
aspoke 发表于 2017-7-2 10:47 | 显示全部楼层
iid读取的速度不超过300khz
232321122 发表于 2017-7-2 10:47 | 显示全部楼层
msp430都是一个周期。
ghuca 发表于 2017-7-2 10:47 | 显示全部楼层
msp430的执行周期就是一个。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部