以前做过的工程这样都可以,现在怎么不行了?
不行,总之不行,代码没用到,只粗略延时了1ms~
拿示波器打一下以前的工程看是不是20ms,一直错到了现在........ ercircle 发表于 2025-6-9 18:37
不行,总之不行,代码没用到,只粗略延时了1ms~
拿示波器打一下以前的工程看是不是20ms,一直错到了现在. ...
怎样改,才能使这个延时函数是个可变参数的? cjtdz 发表于 2025-6-9 18:46
怎样改,才能使这个延时函数是个可变参数的?
再套一层循环,用time当循环次数。
这本书买回来,过一遍就明白了。
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);
}
这个就对了。现在搞明白了,是参数替换错误了,忘了。 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]