You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					69 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					69 lines
				
				1.9 KiB
			| 
								 
											13 years ago
										 
									 | 
							
								/*
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  u8g_u16toa.c
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Universal 8bit Graphics Library
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  Copyright (c) 2012, olikraus@gmail.com
							 | 
						||
| 
								 | 
							
								  All rights reserved.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  Redistribution and use in source and binary forms, with or without modification, 
							 | 
						||
| 
								 | 
							
								  are permitted provided that the following conditions are met:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  * Redistributions of source code must retain the above copyright notice, this list 
							 | 
						||
| 
								 | 
							
								    of conditions and the following disclaimer.
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  * Redistributions in binary form must reproduce the above copyright notice, this 
							 | 
						||
| 
								 | 
							
								    list of conditions and the following disclaimer in the documentation and/or other 
							 | 
						||
| 
								 | 
							
								    materials provided with the distribution.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
							 | 
						||
| 
								 | 
							
								  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
							 | 
						||
| 
								 | 
							
								  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
							 | 
						||
| 
								 | 
							
								  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
							 | 
						||
| 
								 | 
							
								  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
							 | 
						||
| 
								 | 
							
								  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
							 | 
						||
| 
								 | 
							
								  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
							 | 
						||
| 
								 | 
							
								  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
							 | 
						||
| 
								 | 
							
								  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
							 | 
						||
| 
								 | 
							
								  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
							 | 
						||
| 
								 | 
							
								  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
							 | 
						||
| 
								 | 
							
								  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
							 | 
						||
| 
								 | 
							
								  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "u8g.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const char *u8g_u16toap(char * dest, uint16_t v)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  uint8_t pos;
							 | 
						||
| 
								 | 
							
								  uint8_t d;
							 | 
						||
| 
								 | 
							
								  uint16_t c;
							 | 
						||
| 
								 | 
							
								  c = 10000;
							 | 
						||
| 
								 | 
							
								  for( pos = 0; pos < 5; pos++ )
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								      d = '0';
							 | 
						||
| 
								 | 
							
								      while( v >= c )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
									v -= c;
							 | 
						||
| 
								 | 
							
									d++;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      dest[pos] = d;
							 | 
						||
| 
								 | 
							
								      c /= 10;
							 | 
						||
| 
								 | 
							
								  }  
							 | 
						||
| 
								 | 
							
								  dest[5] = '\0';
							 | 
						||
| 
								 | 
							
								  return dest;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* v = value, d = number of digits */
							 | 
						||
| 
								 | 
							
								const char *u8g_u16toa(uint16_t v, uint8_t d)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  static char buf[6];
							 | 
						||
| 
								 | 
							
								  d = 5-d;
							 | 
						||
| 
								 | 
							
								  return u8g_u16toap(buf, v) + d;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |