qepuemc 发表于 2025-3-27 18:49:46

关于一个休眠的小问题无法进休眠

首先说休是可以用的。

然后再使用中发生的问题如下
定义 float TEMP_TEMP=0;

因为要运算所以就这么定义了。
如果下面这样写就不出错

        if (TEMP_TEMP>=0 && TEMP_TEMP<14)
        {
        P1=0;
        P14=1;       
        }



如果下面这么定就会出错(无法休眠)
if (TEMP_TEMP<13)
{
P1=0;
P14=1;
}


实在搞不懂为什么。求指教

qepuemc 发表于 2025-3-27 19:24:16

现在这样改了只能进一次中断!

qepuemc 发表于 2025-3-27 19:32:04

                if (TEMP_TEMP>=22 && TEMP_TEMP<23)
        {//2210110
        P1=0;
        P14=1;
        P15=0;
        P16=1;       
        P17=1;       
        P13=0;       
        }

有这个就不行了

qepuemc 发表于 2025-3-27 20:14:08

现在解决方法就是不能写P1=0;或者P1=1;

ercircle 发表于 2025-3-27 21:08:56

没看明白哇,哪个型号,能上传下可复现的工程?

qepuemc 发表于 2025-3-27 21:19:46

ercircle 发表于 2025-3-27 21:08
没看明白哇,哪个型号,能上传下可复现的工程?

Stc 8h2k08u
这个问题我已经解决了
就是不能设置p1=0或者p1=1,可能和用p10p11做iic通讯有关系,反正就是只要有这两句,他就不会进入休眠.

DebugLab 发表于 2025-3-27 21:28:08

qepuemc 发表于 2025-3-27 21:19
Stc 8h2k08u
这个问题我已经解决了
就是不能设置p1=0或者p1=1,可能和用p10p11做iic通讯有关系,反正就是 ...

使用硬件I2C就不要软件操作IO口
不要声明时赋值,否则编译器不清楚在何时赋值

qepuemc 发表于 2025-3-28 07:53:57

DebugLab 发表于 2025-3-27 21:28
使用硬件I2C就不要软件操作IO口
不要声明时赋值,否则编译器不清楚在何时赋值 ...

学到了谢谢。以后声明时不赋值了。

Ayb_ice 发表于 2025-3-28 09:04:00

qepuemc 发表于 2025-3-28 07:53
学到了谢谢。以后声明时不赋值了。

那是定义时赋值,是完全正常合理的,编译在main之前会处理正确的,

qepuemc 发表于 2025-3-28 11:31:29

Ayb_ice 发表于 2025-3-28 09:04
那是定义时赋值,是完全正常合理的,编译在main之前会处理正确的,

谢谢我是常定义时赋值,我怕运行时值不确定。
看电流就是设置了P1后导致P10 11 不对程序进了死循环了。程序已经改了在操作中不设置P10 11就没事了。
页: [1]
查看完整版本: 关于一个休眠的小问题无法进休眠