Вот очень элементарный пример задержки

Функция Delay() - небольшая задержка в 550мкс и функция Big_Delay() - несколько секунд, а мож и больше

зависит от Delay() также. При кварце 8MHz.
Код
void Delay(void)
{
unsigned int t;
for (t=730; t>0; t--); //(4 такта For)
}
void Big_Delay(void)
{
unsigned int y;
for (y=5000; y>0; y--)
Delay();
}
Но с таймером мне тоже не всё понятно. Разъясните. Как сделать следующее. Допустим тикает таймер. Нужно остановить его и замерить время по приходу на порт P2.2 логической "1", т.е. по перепаду с 0 на 1. или наоборот.
Flag = P2IFG & 0x04; //Устанавливается флаг при перепаде 1>0
Либо замерить время единичного импулься. т.е. по перепадам 0-1 и 1-0.
Можно пример!? На примере понятней, особенно с коментами.
Rezident. Вам отдельная благодарность.