1.实践使用
void t0_isr(void) interrupt 1 //中断函数
{
static unsigned char count = 0;//static静态变量
count++;
if(count == CYCLE){
count = 0;
P1_0 = 1;
P1_1 = 1;
P1_2 = 1;
P1_3 = 1;
}
if (count == DUTY_CYCLE01){//duty_cycle 占空比,工作周期
P1_0 = 0;
}if (count == DUTY_CYCLE02){
P1_1 = 0;
}if (count == DUTY_CYCLE03){
P1_2 = 0;
}if (count == DUTY_CYCLE04){
P1_3 = 0;
}
}
}
问:我不太理解里面的static使用方法,不加它又怎么样?
答:在这段代码中,static
关键字用来声明一个静态变量count
。静态变量具有以下特点:
- 静态变量的作用域仅限于当前函数(相当于局部变量),但其生命周期会一直持续到程序的结束。
- 静态变量在函数调用之间保持其值不变,因此每次调用
t0_isr
函数时,count
会保留上一次函数调用结束时的值。
在这个特定的代码段中,count
被用来计数,并根据其值来控制不同的逻辑操作。每次进入t0_isr
函数时,count
会自增1。当count
等于CYCLE
时,将count
重置为0,并设置P1_0
、P1_1
、P1_2
和P1_3
引脚的状态为高电平。
如果不使用static
关键字声明count
变量,那么它将成为一个自动变量,每次函数调用时都会重新初始化为0。这意味着每次执行t0_isr
函数时,count
的值都会被重置,无法正确计数和控制逻辑操作。因此,为了实现正确的计数和逻辑控制,使用static
关键字是必要的。
以上,完