Вот пример моего модуля для генерирования задержек (для PIC18) delay.h
// Для серии PIC18 при кварце на 10 МГц и включённом режиме PLL
#ifndef __DELAY__
#define __DELAY__
#define DelayUS(x) { char _dcnt = (x); \
while(_dcnt-- > 0) \
{ \
CLRWDT(); \
NOP(); \
NOP(); \
NOP(); \
} \
}
// Пауза в cnt миллисекунд
extern void DelayMS (unsigned cnt);
#endif
delay.c
#include
#include "delay.h"
//------------------------------
void DelayMS (unsigned cnt)
{
while (cnt-- > 0)
{
DelayUS(249);
DelayUS(249);
DelayUS(249);
DelayUS(249);
}
}