// Period of square-wave (chu kì của một sóng vuông)
/*Variables for capture and interrupt*/
static volatile bit flag=0;
static volatile unsigned int t1=0,t2=0;
void capture_setup(void)
{
CCPR1L=0; CCPR1H=0; //Clear capture registers
TMR1H=0; TMR1L=0; //Clear timer1 registers
CCP1CON = 0b00000111; //Capture every 16th rising edge on CCP1(RC2)
T1CON = 0b00100101; //Configure Timer1 module in timer mode with 1:4 prescale and start Timer1
CCP1IE=1; //Enable CCP interrupts
TMR1IE=0; //Disable Timer1 interrupts
PEIE=1;
GIE=1; //Enable global interrupts
}
static void t1func(void)
{
t1=CCPR1L;
t1+=(CCPR1H << 8);
}
static void t2func(void)
{
t2=CCPR1L;
t2+=(CCPR1H << 8);
t2-=t1;
}
static void interrupt isr(void)
{
if (CCP1IF && CCP1IE) //Clock line every 16th rising edge on CCP1IF, RC2, pin 13 on micro
{
CCP1IF=0;
if(flag==1) //Save value to t1 on every even interrupt
{
t1func();
flag = 0;
}
else //Save value to t2 on every odd interrupt
{
t2func();
flag = 1;
}
}
}
Nhà mình có bác nào dảnh thì giải thích giúp em cái này cái:

static volatile bit flag=0;
static volatile unsigned int t1=0,t2=0;
Khai báo biến kiểu này là kiểu gì thế?