emWin(ucGui)數值顯示例程 -【worldsing筆記】

本例程下載2.emWin5.26(ucGui)VS2008數字顯示.zip c++

 

emWin顯示文本字符仍是容易,咱們也能夠使用字符串和標準 C 庫的函數來顯示數值。然而,有時候這會是件困難的事。一般,較爲容易(也更爲有效)的是調用一個例程顯示所需結 函數

構的數值。 emWin 支持各類十進制、十六進制和二進制輸出。本章將對這些例程進行逐一描述。全部函數不須要使用浮點庫,並對速度和大小進行了優化。固然"Sprintf"能夠用於任何系統。使 優化

用本章介紹的例程,有時能夠簡化操做,節省 ROM 空間和執行時間,下表按字母順序列出了相應類別中與數值相關的可用例程。各例程將在後續章節中詳細描述。 ui

 

顯示十進制數值接口 spa

GUI_DispDec() 在當前位置顯示指定字符數的十進制數值。 blog

GUI_DispDecAt() 在指定位置顯示指定字符數的十進制數值。 接口

GUI_DispDecMin() 在當前位置顯示最小字符數的十進制數值。 ip

GUI_DispDecShift() 在當前位置顯示指定字符數、帶小數點的十進制長數值。 字符串

GUI_DispDecSpace() 在當前位置顯示指定字符數的十進制數值,用空格代替首位的 0。 it

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("\nGUI_DispDec:\n\n");

   

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("\n");

   

//當前位置顯示,長度自動

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("\n");

   

//當前位置顯示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("\n\n\n\nGUI_DispFloat:\n\n");

   

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("\n");

   

//顯示f值,長度自動,小數位,帶符號

GUI_DispSFloatMin(f, 3);

   

GUI_DispString(" ");

   

//顯示f值,長度自動,小數位,帶符號

GUI_DispSFloatMin(-f, 3);

   

   

   

/*---------------二進制數值顯示-------------------*/

   

   

GUI_SetFont(&GUI_Font8x8);

//當前位置加入換行

GUI_DispString("\n\n\n\nGUI_DispBin:\n\n");

   

GUI_SetFont(&GUI_Font6x8);

   

GUI_DispBin(0xaa, 8);

   

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

   

   

   

/*---------------十六進制數值顯示-------------------*/

   

   

GUI_SetFont(&GUI_Font8x8);

//當前位置加入換行

GUI_DispString("\n\n\n\nGUI_DispHex:\n\n");

   

GUI_SetFont(&GUI_Font6x8);

   

GUI_DispHex(0xaa, 8);

   

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

   

GUI_SetFont(&GUI_Font8x8);

   

//當前位置加入換行

GUI_DispString("\n\n\n\nThis is emWin V");

   

GUI_DispString(GUI_GetVersionString());

   

   

GUI_DispString("\n\nThe 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);

   

}

}

相關文章
相關標籤/搜索