|
在学习dac时,自己改了一下程序,发现了一个关于变量声明的问题
请教各位详细指导一下。
u8 dackey;
u16 dac_val=0;
void up_or_down_val(void)
{
dackey=key_scan(0);
if(dackey==k_up_bit)
{
dac_val+=400;
if(dac_val>=4000)
{
dac_val=4095;
}
DAC_SetChannel1Data(DAC_Align_12b_R,dac_val);
}
else if(dackey==k_down_bit)
{
dac_val-=400;
if(dac_val<=0)
{
dac_val=0;
}
DAC_SetChannel1Data(DAC_Align_12b_R,dac_val);
}
}
这种定义在函数外部的变量声明,经过主函数调用up_or_down_va后,dac_val数值会增加
void up_or_down_val(void)
{
u8 dackey;
u16 dac_val=0;
}
如果变量的声明在函数内部
dac_val只会增加一次,后续无论怎么按键都不会改变
|
|