#include <xc.h>
void _delay(unsigned long cycles);
void _delaywdt(unsigned long cycles);
这是一个由代码生成器进行扩展的内联函数。在调用时,该程序将扩展为内联汇编延时序列。序列将包含根据参数延迟指定指令周期数的代码。参数必须为常量表达式。
_delay 内联函数可以使用循环和 NOP 指令来实现延时。只有在 PIC18 器件上,_delaywdt 内联函数执行相同的任务,但可以使用 CLRWDT 指令以及循环来实现指定
的延时。
如果所请求的延时周期不是常量表达式或太大(对于 PIC18 器件约为 179,200 条指令,对于其他 8 位 PIC 器件约为 50,659,000 条指令),将会产生错误。要实现非常大的延时,可以多次调用该函数。
#include <xc.h>
void
main(void)
{
control |= 0x80;
_delay(10); // delay for 10 cycles
control &= 0x7F;
}
|