⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui_adddec.lst

📁 Keil C下通过的UCGUI,UCGUI的移植源代码
💻 LST
字号:
C51 COMPILER V8.05a   GUI_ADDDEC                                                           04/11/2008 14:18:26 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE GUI_ADDDEC
OBJECT MODULE PLACED IN GUI_AddDec.obj
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE gui\Core\GUI_AddDec.c LARGE BROWSE MDU_F120 DEBUG OBJECTEXTEN
                    -D PRINT(.\GUI_AddDec.lst) OBJECT(GUI_AddDec.obj)

line level    source

   1          /*
   2          *********************************************************************************************************
   3          *                                                uC/GUI
   4          *                        Universal graphic software for embedded applications
   5          *
   6          *                       (c) Copyright 2002, Micrium Inc., Weston, FL
   7          *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
   8          *
   9          *              礐/GUI is protected by international copyright laws. Knowledge of the
  10          *              source code may not be used to write a similar product. This file may
  11          *              only be used in accordance with a license and should not be redistributed
  12          *              in any way. We appreciate your understanding and fairness.
  13          *
  14          ----------------------------------------------------------------------
  15          File        : GUIVAL.C
  16          Purpose     : Routines to display values as dec, binary or hex
  17          ----------------------------------------------------------------------
  18          */
  19          
  20          #include "gui\Core\GUI_Protected.h"
  21          #include "gui\Core\GUIDebug.h"
  22          #include "string.h"
  23          
  24          
  25          /*********************************************************************
  26          *
  27          *       Public data
  28          *
  29          **********************************************************************
  30          */
  31          
  32          const U32 GUI_Pow10[10] = {
  33            1 , 10, 100, 1000, 10000,
  34            100000, 1000000, 10000000, 100000000, 1000000000
  35          };
  36          
  37          /*********************************************************************
  38          *
  39          *       Static routines
  40          *
  41          **********************************************************************
  42          */
  43          
  44          static int _Check_NegLong(I32 *pv, char**ps) {
  45   1        if (*pv<0) {
  46   2          *(*ps)++ = '-';
  47   2          *pv = -*pv;
  48   2          return 1;
  49   2        }
  50   1        return 0;
  51   1      }
  52          
  53          /*********************************************************************
  54          *
C51 COMPILER V8.05a   GUI_ADDDEC                                                           04/11/2008 14:18:26 PAGE 2   

  55          *       Module internal routines
  56          *
  57          **********************************************************************
  58          */
  59          
  60          int GUI_Long2Len(I32 vSign) {
  61   1        int Len = 1;
  62   1        I32 v = (vSign>0) ? vSign : -vSign;
  63   1        while (( ((U32)v) >= GUI_Pow10[Len]) && (Len <9))
  64   1          Len++;
  65   1        if (vSign<0)
  66   1                      Len++;
  67   1        return Len;
  68   1      }
  69          
  70          long GUI_AddSign(long v, char**ps) {
  71   1        char c;
  72   1        if (v<0) {
  73   2          c = '-';
  74   2          v = -v;
  75   2        } else {
  76   2          c = '+';
  77   2        }
  78   1        *(*ps)++ = c;
  79   1        **ps     = '\0';
  80   1        return v;
  81   1      }
  82          
  83          /*********************************************************************
  84          *
  85          *       Public routines
  86          *
  87          **********************************************************************
  88          */
  89          
  90          /*********************************************************************
  91          *
  92          *       Decimal GUI_Add...  routines
  93          */
  94          
  95          
  96          void GUI_AddDecShift(I32 v, U8 Len, U8 Shift, char**ps) {
  97   1        char c;
  98   1        long d;
  99   1        #ifndef _CM16C
 100   1          Len -= _Check_NegLong(&v, ps); /* TASKING: Tool internal error S003: asertion failed - please report *
             -/
 101   1        #else
                  if (v<0) {
                    *(*ps)++ = '-';
                    v = -v;
                  }
                #endif
 107   1        if (Shift) Len--;
 108   1      #if GUI_DEBUG_LEVEL >1
                if (Len>9) {
                  Len=9;
                  GUI_DEBUG_ERROROUT("Can not display more than 9 dec. digits");
                }
              #endif
 114   1        if ((U32)v >= GUI_Pow10[Len])
 115   1              v = GUI_Pow10[Len]-1;
C51 COMPILER V8.05a   GUI_ADDDEC                                                           04/11/2008 14:18:26 PAGE 3   

 116   1        while (Len) {
 117   2          if (Len--==Shift)
 118   2            *(*ps)++ = GUI_DecChar;
 119   2          d = GUI_Pow10[Len];
 120   2          c = (char) (v/d);
 121   2          v -= c*d;
 122   2          *(*ps)++ = c+'0';
 123   2        }
 124   1        **ps = 0;
 125   1      }
 126          
 127          void GUI_AddDec(I32 v, U8 Len, char**ps) {
 128   1        GUI_AddDecShift(v, Len, 0, ps);
 129   1      }
 130          
 131          void GUI_AddDecMin(I32 v, char**ps) {
 132   1        U8 Len = GUI_Long2Len(v);
 133   1        GUI_AddDecShift(v, Len, 0, ps);
 134   1      }
 135          
 136          
 137          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    941    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     40      53
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -