鱼C论坛

 找回密码
 立即注册
查看: 3575|回复: 3

[见证历程] 圆梦那年7(c 语言 实时监测电池电压)

[复制链接]
发表于 2017-7-13 23:31:38 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 249018563 于 2017-7-14 16:37 编辑

电池电压检实时监测 (每半秒将测得的实时电压刷新显示一次)
航模2s 电池    大概8v左右  测量电压用oled显示

程序分享https://pan.baidu.com/s/1i4NQMGH(需要keil5 打开,keil5 下载地址在帖子《 圆梦那年3》 中)

  说个小技巧

-----------------------------------------------------
  这个函数返回的值是电池电压,由于移植的程序显示函数只能接受整型,所以返回的是整数
-------------------------------------------------------
int getVBAT(void)  
{  
        int vBAT0;
        int vBAT;
        vBAT0 = getAdc(ADC_CH3)*3.3*57*/10/4096;  
        vBAT = vBAT0 *100;
        return vBAT;
}
----------------------------------
这个是oled显示函数,但只能传入整数进行显示
--------------------------------------
//显示2个数字
//x,y :起点坐标         
//len :数字的位数
//size:字体大小
//mode:模式        0,填充模式;1,叠加模式
//num:数值(0~4294967295);                           
void OLED_ShowNumber(u8 x,u8 y,u32 num,u8 len,u8 size)
{                
        u8 t,temp;
        u8 enshow=0;                                                  
        for(t=0;t<len;t++)
        {
                temp=(num/oled_pow(10,len-t-1))%10;
                if(enshow==0&&t<(len-1))
                {
                        if(temp==0)
                        {
                                OLED_ShowChar(x+(size/2)*t,y,' ',size,1);
                                continue;
                        }else enshow=1;
                          
                }
                 OLED_ShowChar(x+(size/2)*t,y,temp+'0',size,1);
        }
}
----------------------------------------------------------------------------------------------------------------

但是我想显示电池电压小数后后两位,更加精确
于是我就将上面函数【int getVBAT(void)】 的值乘以100------->vBAT = vBAT0 *100;

再在下面函数在中除以100【getVBAT()/100】得出整数位,
后两位取余【getVBAT()%100】作为小数位

在加个小数点''.''分开整数位与小数位显示在oled上,就可以看到是小数了
----------------------------------------------------------------------------------------------------------------
                              OLED_ShowString(00,20,"FISHC.COM");
                              OLED_ShowString(00,40,"Volta");
                              OLED_ShowString(58,40,".");
                              OLED_ShowString(84,40,"V");
                              OLED_ShowNumber(45,40,getVBAT()/100,2,12.5);
                              OLED_ShowNumber(68,40,getVBAT()%100,2,12.5);
image.jpg
image.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-7-14 00:19:50 | 显示全部楼层
休息了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-14 09:09:42 | 显示全部楼层
相当的牛x!~~~~~~~~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 18:50:56 | 显示全部楼层
这是c 还是51c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 15:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表