Merge pull request #268 from SSYYL/master
The GUI supports displaying the number '0' and decimals.
This commit is contained in:
commit
5a078f8c10
2 changed files with 63 additions and 1 deletions
|
@ -718,12 +718,73 @@ void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, int32_t Nummber,
|
||||||
}
|
}
|
||||||
|
|
||||||
//Converts a number to a string
|
//Converts a number to a string
|
||||||
while (Nummber) {
|
do {
|
||||||
Num_Array[Num_Bit] = Nummber % 10 + '0';
|
Num_Array[Num_Bit] = Nummber % 10 + '0';
|
||||||
Num_Bit++;
|
Num_Bit++;
|
||||||
Nummber /= 10;
|
Nummber /= 10;
|
||||||
|
} while(Nummber);
|
||||||
|
|
||||||
|
|
||||||
|
//The string is inverted
|
||||||
|
while (Num_Bit > 0) {
|
||||||
|
Str_Array[Str_Bit] = Num_Array[Num_Bit - 1];
|
||||||
|
Str_Bit ++;
|
||||||
|
Num_Bit --;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//show
|
||||||
|
Paint_DrawString_EN(Xpoint, Ypoint, (const char*)pStr, Font, Color_Background, Color_Foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
function: Display nummber (Able to display decimals)
|
||||||
|
parameter:
|
||||||
|
Xstart :X coordinate
|
||||||
|
Ystart : Y coordinate
|
||||||
|
Nummber : The number displayed
|
||||||
|
Font :A structure pointer that displays a character size
|
||||||
|
Digit : Fractional width
|
||||||
|
Color_Foreground : Select the foreground color
|
||||||
|
Color_Background : Select the background color
|
||||||
|
******************************************************************************/
|
||||||
|
void Paint_DrawNumDecimals(UWORD Xpoint, UWORD Ypoint, double Nummber,
|
||||||
|
sFONT* Font, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background)
|
||||||
|
{
|
||||||
|
int16_t Num_Bit = 0, Str_Bit = 0;
|
||||||
|
uint8_t Str_Array[ARRAY_LEN] = {0}, Num_Array[ARRAY_LEN] = {0};
|
||||||
|
uint8_t *pStr = Str_Array;
|
||||||
|
int temp = Nummber;
|
||||||
|
float decimals;
|
||||||
|
uint8_t i;
|
||||||
|
if (Xpoint > Paint.Width || Ypoint > Paint.Height) {
|
||||||
|
Debug("Paint_DisNum Input exceeds the normal display range\r\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(Digit > 0) {
|
||||||
|
decimals = Nummber - temp;
|
||||||
|
for(i=Digit; i > 0; i--) {
|
||||||
|
decimals*=10;
|
||||||
|
}
|
||||||
|
temp = decimals;
|
||||||
|
//Converts a number to a string
|
||||||
|
for(i=Digit; i>0; i--) {
|
||||||
|
Num_Array[Num_Bit] = temp % 10 + '0';
|
||||||
|
Num_Bit++;
|
||||||
|
temp /= 10;
|
||||||
|
}
|
||||||
|
Num_Array[Num_Bit] = '.';
|
||||||
|
Num_Bit++;
|
||||||
|
}
|
||||||
|
|
||||||
|
temp = Nummber;
|
||||||
|
//Converts a number to a string
|
||||||
|
do {
|
||||||
|
Num_Array[Num_Bit] = temp % 10 + '0';
|
||||||
|
Num_Bit++;
|
||||||
|
temp /= 10;
|
||||||
|
} while(temp);
|
||||||
|
|
||||||
//The string is inverted
|
//The string is inverted
|
||||||
while (Num_Bit > 0) {
|
while (Num_Bit > 0) {
|
||||||
Str_Array[Str_Bit] = Num_Array[Num_Bit - 1];
|
Str_Array[Str_Bit] = Num_Array[Num_Bit - 1];
|
||||||
|
|
|
@ -200,6 +200,7 @@ void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Acsii_Char, sFONT* Fo
|
||||||
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background);
|
void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background);
|
||||||
void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background);
|
void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Foreground, UWORD Color_Background);
|
||||||
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, int32_t Nummber, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background);
|
void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, int32_t Nummber, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background);
|
||||||
|
void Paint_DrawNumDecimals(UWORD Xpoint, UWORD Ypoint, double Nummber, sFONT* Font, UWORD Digit, UWORD Color_Foreground, UWORD Color_Background); // Able to display decimals
|
||||||
void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background);
|
void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Foreground, UWORD Color_Background);
|
||||||
|
|
||||||
//pic
|
//pic
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue