ercircle 发表于 2025-6-9 18:37:46

cjtdz 发表于 2025-6-9 18:34
以前做过的工程这样都可以,现在怎么不行了?

不行,总之不行,代码没用到,只粗略延时了1ms~
拿示波器打一下以前的工程看是不是20ms,一直错到了现在........

cjtdz 发表于 2025-6-9 18:46:02

ercircle 发表于 2025-6-9 18:37
不行,总之不行,代码没用到,只粗略延时了1ms~
拿示波器打一下以前的工程看是不是20ms,一直错到了现在. ...
怎样改,才能使这个延时函数是个可变参数的?

ercircle 发表于 2025-6-9 18:50:15

cjtdz 发表于 2025-6-9 18:46
怎样改,才能使这个延时函数是个可变参数的?
再套一层循环,用time当循环次数。
这本书买回来,过一遍就明白了。



cjtdz 发表于 2025-6-9 18:54:04

ercircle 发表于 2025-6-9 18:50
再套一层循环,用time当循环次数。
这本书买回来,过一遍就明白了。


void delay1ms(unsigned int time)      //@11.0592MHz
{
      unsigned int i;
      
      for (i = 0; i < time; i++)
      {
                unsigned char j, k;
                _nop_();
                _nop_();
                _nop_();
                j = 11;
                k = 190;
                do
                {
                        while (--k);
                } while (--j);
      }
这个就对了。现在搞明白了,是参数替换错误了,忘了。

ercircle 发表于 2025-6-9 18:55:16

cjtdz 发表于 2025-6-9 18:54
void delay1ms(unsigned int time)        //@11.0592MHz
{
        unsigned int i;


变量声明都挪到函数开始位置
https://www.stcaimcu.com/thread-18147-1-1.html
页: 1 [2]
查看完整版本: 大师们看看我不明白的警告