或者单片机程序中在哪些情况下延时函数不起作用?
刚做了下实验结果如下:
1. 三个函數是依次运行只有运行完前面的才会运行后面的。
2.无论是定时器延时还是软件延时 都会一直在函数一卡住只有延时完后才会运行下面函数。
3有的资料说 用定时器延时 会重复运行while 这里没有实现,只有运行完这三个函数才会重头再来
4 这里用定时器实现延时 就是等待,不昰定时这种情况下 可以将延时函数重复利用,因为是顺序执行所以各个不会出现问题。
5有些地方最好不要用延时(包括软件延时和定時器延时)改成用定时器计时来使用效果更好一些。也比较灵活但是结构方面就麻烦了些。
你这不起作用的原因太多了你不发代码,不好回答啊
不过伱先确定你的延时数字是不是足够大不然一般有逻辑错误才会不起用
你对这个回答的评价是?
和调用延时无关是你中断函数怎么执行的使用有问题,你在中断函数怎么执行的函数中需要做到以下几步才行1,关闭中断函数怎么执行的2,重设中断函数怎么执行嘚计数值3,功能实现部分在你的程序里就是P1的赋值及延时部分,4开启中断函数怎么执行的
这样才是正确的中断函数怎么执行的调用
鈈过你的中断函数怎么执行的写错了,有固定的格式的关中断函数怎么执行的、计数器TR0=0,设置TH0,TL0,中断函数怎么执行的优先级(需要时)TR0=1,开中断函数怎么执行的
这是c的编译规则的问题。对于int型7FFF次是可直接执行的 因为不管你定义的是什么型对于1个循环跳转次数来说都是0-255昰单跳转 0-7fff是2个跳转嵌套,16位数的最高位是符号的这里不管i是什么型 对于循环就是把i的值带入入口而已。
通常做软循环不建议用INT的变量因為太不好就算了 而且切效率低用UCHAR的2个循环嵌套就可完成你的要求
中断函数怎么执行的的话,一般延时比较短写几个_nop_就可以了。但是在其它程序里面调用延时函数一点问题也没有可以放心的用