【BUG?】使用CCS6.0/Proteus7.8对MSP430进行软件仿真出现问题

2019-03-24 11:25发布

基本流程就是通过CCS6.0生成HEX文件载入Proteus进行仿真
首先,这是仿真图,用P2口控制8个LED灯的熄灭
p1.png


核心代码如下:
  1. #pragma vector = TIMERA0_VECTOR
  2. __interrupt void timer_A(void) {
  3.         P2OUT = (0x01u << 0);
  4. }
复制代码P2输出造成第0盏灯亮
p2.png
上面是仿真结果,这没什么问题,然后将代码修改如下:
  1. #pragma vector = TIMERA0_VECTOR
  2. __interrupt void timer_A(void) {
  3.         unsigned int order = 0;
  4.         P2OUT = (0x01u << order);
  5. }
复制代码
理论上,仿真结果应该没有任何变化才对,但是实际结果是这个:
p3.png
如图,D2亮,想了好久实在想不通为什么,最有可能的就是CCS6.0编译成HEX文件的时候出现了问题,真的是这样吗?

真心求教~~
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
qinkaiabc
1楼-- · 2019-03-24 19:37
order变为全局变量试试。这种问题问问@平湖秋月
valaxy
2楼-- · 2019-03-25 01:16
< :TI_MSP430_内容页_SA7 --> 我试过全局变量了 是一样的问题
如果order=1就是D3亮
如果order=2就是D4亮
如果order=3就是D5亮...总是莫名其妙偏了一个位置
如果左移运算符的第二分量是常数就没有这些问题
@平湖秋月 ..
valaxy
3楼-- · 2019-03-25 03:54
 精彩回答 2  元偷偷看……
数码小叶
4楼-- · 2019-03-25 09:12
直接用ccs仿真,看下寄存器和order的值,看对不对,或者你把仿真文件发上来

一周热门 更多>

相关问题

    相关文章