嵌入式-C语言-static静态变量

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。静态变量具有以下特点:

  1. 静态变量的作用域仅限于当前函数(相当于局部变量),但其生命周期会一直持续到程序的结束。
  2. 静态变量在函数调用之间保持其值不变,因此每次调用t0_isr函数时,count会保留上一次函数调用结束时的值。

在这个特定的代码段中,count被用来计数,并根据其值来控制不同的逻辑操作。每次进入t0_isr函数时,count会自增1。当count等于CYCLE时,将count重置为0,并设置P1_0P1_1P1_2P1_3引脚的状态为高电平。

如果不使用static关键字声明count变量,那么它将成为一个自动变量,每次函数调用时都会重新初始化为0。这意味着每次执行t0_isr函数时,count的值都会被重置,无法正确计数和控制逻辑操作。因此,为了实现正确的计数和逻辑控制,使用static关键字是必要的。
以上,完

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值