v0.1
This commit is contained in:
@@ -385,6 +385,43 @@ void ABS_OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size1,u8 mode)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//z_len为整数显示位数,f_len为小数显示位数,size2为字体大小
|
||||
void ABS_OLED_Showdecimal(u8 x,u8 y,float num,u8 z_len,u8 f_len,u8 size2,u8 mode)
|
||||
{
|
||||
u8 t,temp;
|
||||
u8 enshow;
|
||||
int z_temp,f_temp;
|
||||
z_temp=(int)num;
|
||||
//整数部分
|
||||
for(t=0;t<z_len;t++)
|
||||
{
|
||||
temp=(z_temp/ABS_OLED_Pow(10,z_len-t-1))%10;
|
||||
if(enshow==0 && t<(z_len-1))
|
||||
{
|
||||
if(temp==0)
|
||||
{
|
||||
ABS_OLED_ShowChar(x+(size2/2)*t,y,' ',size2,mode);
|
||||
continue;
|
||||
}
|
||||
else
|
||||
enshow=1;
|
||||
}
|
||||
ABS_OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2,mode);
|
||||
}
|
||||
//小数点
|
||||
ABS_OLED_ShowChar(x+(size2/2)*(z_len),y,'.',size2,mode);
|
||||
|
||||
f_temp=(int)((num-z_temp)*(ABS_OLED_Pow(10,f_len)));
|
||||
//小数部分
|
||||
for(t=0;t<f_len;t++)
|
||||
{
|
||||
temp=(f_temp/ABS_OLED_Pow(10,f_len-t-1))%10;
|
||||
ABS_OLED_ShowChar(x+(size2/2)*(t+z_len)+5,y,temp+'0',size2,mode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*函数:ABS_OLED_ShowChinese
|
||||
**描述:在指定位置打印中文字符
|
||||
**参数1:x1:起始x坐标 取值返回小于ABS_OLED_WIDTH
|
||||
@@ -571,6 +608,7 @@ ABS_OLED_Drive Create_OLED(void){
|
||||
drive.ShowString=ABS_OLED_ShowString;
|
||||
drive.ShowChinese=ABS_OLED_ShowChinese;
|
||||
drive.ShowNum=ABS_OLED_ShowNum;
|
||||
drive.Showdecimal=ABS_OLED_Showdecimal;
|
||||
drive.ShowImage=ABS_OLED_ShowPicture;
|
||||
ABS_OLED_Init();
|
||||
return drive;
|
||||
|
||||
Reference in New Issue
Block a user