microEC 发表于 2024-5-1 22:42:14

求助,点灯遇到问题

我的程序中控制P00和P01都是控制一个二极管。
1,在我的超级循环里只对P00和P01操作,通过逻辑分析仪,我得到了想要的结果。



输出,紫色P00,蓝色P01

程序
2,当我在程序里增加了b1=b和a *=2,其中a是int,b和b1是long int

这时输出,紫色P00,蓝色P01出现异常的输出,但是明显异常的输出并不出现在程序改动的位置



程序里增加了b1=b和a *=2
请高手帮忙分析个原因。

wangxiangtan 发表于 2024-5-2 07:43:27

b1=b和a *=2需要时间

microEC 发表于 2024-5-2 08:23:17

wangxiangtan 发表于 2024-5-2 07:43
b1=b和a *=2需要时间

但是他不应该影响P01的输出

jwd 发表于 2024-5-2 08:25:53

你如果delay的话差距会更大{:4_165:}

microEC 发表于 2024-5-2 08:47:39

我这个是BETA版本,不知道是什么因素,我改变了程序,希望能找出原因。程序还是简单,我先让P01输出两次低,再让P00输出8次低。程序结果是正确的。

当我在程序箭头中增加一句加法时P01的低会有一个变化,

比较奇怪

microEC 发表于 2024-5-2 08:49:31

jwd 发表于 2024-5-2 08:25
你如果delay的话差距会更大

并不有间隔,我就是想测一下执行时间,我是发现他影响了输出,请再看一下刚上传的

microEC 发表于 2024-5-2 09:02:58

我又在P01输出高时,执行加法,发现没有引起P01电平变化,只是时间延长,时间延长是正常的


microEC 发表于 2024-5-2 09:03:36

希望大家指导下

jwd 发表于 2024-5-2 09:05:02

你看看你的编译后的汇编是不是有语句被优化掉了?或者你选择编译等级0试试

神农鼎 发表于 2024-5-2 09:08:04

用支持仿真的 STC8H8K64U/STC32G12K128,仿真跟踪进去看下

51 如何仿真,STC8H8K64U自带硬件USB直接仿真,视频讲解回放 - 仿真/编译器/头文件 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)



页: [1] 2
查看完整版本: 求助,点灯遇到问题