zoukankan      html  css  js  c++  java
  • emWin(ucGui)数值显示例程 -【worldsing笔记】

    本例程下载2.emWin5.26(ucGui)VS2008数字显示.zip

     

    emWin显示文本字符还是容易,我们也可以使用字符串和标准 C 库的函数来显示数值。然而,有时候这会是件困难的事。通常,较为容易(也更为有效)的是调用一个例程显示所需结

    构的数值。 emWin 支持各种十进制、十六进制和二进制输出。本章将对这些例程进行逐一描述。所有函数不需要使用浮点库,并对速度和大小进行了优化。当然"Sprintf"可以用于任何系统。使

    用本章介绍的例程,有时可以简化操作,节省 ROM 空间和执行时间,下表按字母顺序列出了相应类别中与数值相关的可用例程。各例程将在后续章节中详细描述。

     

    显示十进制数值接口

    GUI_DispDec() 在当前位置显示指定字符数的十进制数值。

    GUI_DispDecAt() 在指定位置显示指定字符数的十进制数值。

    GUI_DispDecMin() 在当前位置显示最小字符数的十进制数值。

    GUI_DispDecShift() 在当前位置显示指定字符数、带小数点的十进制长数值。

    GUI_DispDecSpace() 在当前位置显示指定字符数的十进制数值,用空格代替首位的 0。

    GUI_DispSDec() 在当前位置显示指定字符数的十进制数值并显示符号。

    GUI_DispSDecShift() 在当前位置显示指定字符数、带小数点的十进制长数值并显示符号。

     

    显示浮点数值接口

    GUI_DispFloat() 显示指定字符数的浮点数值。

    GUI_DispFloatFix() 显示指定小数点右边位数的浮点数值。

    GUI_DispFloatMin() 显示最小字符数的浮点数值。

    GUI_DispSFloatFix() 显示指定小数点右边位数的浮点数值并显示符号。

    GUI_DispSFloatMin() 显示最小字符数的浮点数值并显示符号。

     

    显示二进制数值接口

    GUI_DispBin() 在当前位置显示二进制数值。

    GUI_DispBinAt() 在指定位置显示二进制数值。

     

    显示十六进制数值接口

    GUI_DispHex() 在当前位置显示十六进制数值。

    GUI_DispHexAt() 在指定位置显示十六进制数值。

     

    emWin 版版本接口

    GUI_GetVersionString() 返回 emWin 的当前版本。

     

    接下来对以上的接口写个例程,演示各种接口的使用方法

    本例程演示效果

       

    #include "GUI.h"

    #include "WM.h"

       

    #include "CHECKBOX.h"

    #include "FRAMEWIN.h"

    #include "PROGBAR.h"

    #include "TEXT.h"

    #include "BUTTON.h"

    #include "SLIDER.h"

    #include "HEADER.h"

    #include "GRAH.h"

    #include "ICONVIEW.h"

    #include "LISTVIEW.h"

    #include "TREEVIEW.h"

       

    void MainTask(void)

    {

       

    int Min = -2;

    int Sec = 60;

    float f = 3.141592;

       

    int state;

       

    #if GUI_WINSUPPORT

    WM_SetCreateFlags(WM_CF_MEMDEV);

    #endif

    GUI_Init();

    #if GUI_WINSUPORT

    WM_MULTIBUF_Enable(1);

    #endif

    while(1)

    {

    /*---------------10进制显示-------------------*/

       

    GUI_SetFont(&GUI_Font8x8);

    GUI_GotoXY(0,0);

    GUI_DispString(" GUI_DispDec: ");

       

    GUI_SetFont(&GUI_Font6x8);

       

       

    //在当前位置显示字符串

    GUI_DispString("Min:");

       

    //在当前位置显示Min的值,长度是

    GUI_DispDec(-Min,2);

       

    //在当前位置显示字符串

    GUI_DispString(" Sec:");

       

    //在当前位置显示Sec的值,长度是

    GUI_DispDec(Sec,2);

       

       

    //延时

    GUI_Delay(90);

    Sec++;

    Sec %= 61;

       

    //在, 100,显示Min的值,长度

    GUI_DispDeAt(Min, 0, 50, 3);

       

    //在, 110,显示,长度超出范围不显示

    GUI_DispDecAt(59009, 50, 50, 3);

       

    //在, 110,显示,长度前面补

    GUI_DispDecAt(89, 100, 50, 3);

       

    //在, 110,显示,长度前面补

    GUI_DispDecAt(887, 150, 50, 9);

       

    //当前位置换行

    GUI_DispString(" ");

       

    //当前位置显示,长度自动

    GUI_DispDecMin(530);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //位置显示-83492

    GUI_DispDecMin(-83492);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //当前位置显示-388/(10^1),长度前面补

    GUI_DispDecShift(-388, 9, 1);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //当前位置显示-388/(10^2),长度前面补

    GUI_DispDecShIft(-388, 6, 2);

       

    //当前位置换行

    GUI_DispString(" ");

       

    //当前位置显示Start:

    GUI_DispString("Start:");

       

    //当前位置显示-3415,前面补空格

    GUI_DispDecSpace(-3415, 8);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //当前位置显示-12455

    GUI_DispSDec(-12455, 10);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //当前位置显示+12455

    GUI_DispSDec(12455, 10);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //当前位置-12455/(10^2), 长度,前面补

    GUI_DispSDecShift(-12455, 9, 2);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //当前位置+12455/(10^1), 长度,前面补

    GUI_DispSDecShift(12455, 8, 1);

       

    /*---------------浮点数值显示-------------------*/

       

       

    GUI_SetFont(&GUI_Font8x8);

    //当前位置加入换行

    GUI_DispString(" GUI_DispFloat: ");

       

    GUI_SetFont(&GUI_Font6x8);

       

    //显示f值,长度为,后面补

    GUI_DispFloat(f, 10);

       

    //当前位置加入空格

    GUI_DispString(" ");

       

    //显示-f值,长度为,后面补

    GUI_DispFloat(-f, 10);

       

    GUI_DispString(" ");

       

    //显示f值,长度为,前面补,小数位

    GUI_DispFloatFix(f, 1O, 3);

       

    GUI_DispString(" ");

       

    //显示f值,长度自动,小数位

    GUI_DispFloatMin(f, 5);

       

    GUI_DispString(" ");

       

    //显示f值,长度,小数位,带符号

    GUI_DispSFloatFix(f, 10, 2);

       

    GUI_DispString(" ");

    //显示-f值,长度,小数位,带符号

    GUI_DispSFloatFix(-f, 10, 2);

       

       

    GUI_DispString(" ");

       

    //显示f值,长度自动,小数位,带符号

    GUI_DispSFloatMin(f, 3);

       

    GUI_DispString(" ");

       

    //显示f值,长度自动,小数位,带符号

    GUI_DispSFloatMin(-f, 3);

       

       

       

    /*---------------二进制数值显示-------------------*/

       

       

    GUI_SetFont(&GUI_Font8x8);

    //当前位置加入换行

    GUI_DispString(" GUI_DispBin: ");

       

    GUI_SetFont(&GUI_Font6x8);

       

    GUI_DispBin(0xaa, 8);

       

    GUI_DispBinAt(0xaa5587, 100, 17O, 24);

       

       

       

    /*---------------十六进制数值显示-------------------*/

       

       

    GUI_SetFont(&GUI_Font8x8);

    //当前位置加入换行

    GUI_DispString(" GUI_DispHex: ");

       

    GUI_SetFont(&GUI_Font6x8);

       

    GUI_DispHex(0xaa, 8);

       

    GUI_DispHexAt(0xaa5587, 110, 218, 8);

       

    GUI_SetFont(&GUI_Font8x8);

       

    //当前位置加入换行

    GUI_DispString(" This is emWin V");

       

    GUI_DispString(GUI_GetVersionString());

       

       

    GUI_DispString(" The emWin demo for Worldsing");

       

    state = Sec % 4;

    switch(state)

    {

    case 0:

        GUI_DispString(" - ");break;

    case 1:

        GUI_DispString(" / ");break;

    case 2:

        GUI_DispString(" | ");break;

    case 3:

        GUI_DispString(" "); break;

    }

    GUI_SetFont(&GUI_Font6x8);

       

    }

    }

  • 相关阅读:
    react 采坑记录
    理解JS 模块化
    MongoDB使用教程
    scss
    gulp 使用教程
    node.js 简单入门
    jQuery
    jQuery
    php+mysql+bootstrap 实现成绩管理系统
    SVN的commit功能用bat实现
  • 原文地址:https://www.cnblogs.com/worldsing/p/4060419.html
Copyright © 2011-2022 走看看