Small bitmap-library to use with monocrome displays.
TinyHelper.cpp@6:c558f38d07ca, 2018-08-31 (annotated)
- Committer:
- glx
- Date:
- Fri Aug 31 16:10:15 2018 +0000
- Revision:
- 6:c558f38d07ca
- Parent:
- 1:e52881eae197
Bugfix
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
glx | 1:e52881eae197 | 1 | //Helper-functions to convert an int to a displayable char[] |
glx | 1:e52881eae197 | 2 | |
glx | 1:e52881eae197 | 3 | void IntToChar(char *CharBuffer, int Number) //Only works for positive numbers |
glx | 1:e52881eae197 | 4 | { |
glx | 1:e52881eae197 | 5 | |
glx | 1:e52881eae197 | 6 | char TempBuffer[32]; |
glx | 1:e52881eae197 | 7 | char index = 0; |
glx | 1:e52881eae197 | 8 | |
glx | 1:e52881eae197 | 9 | do |
glx | 1:e52881eae197 | 10 | { |
glx | 1:e52881eae197 | 11 | char Rest = Number % 10; |
glx | 1:e52881eae197 | 12 | Number = Number / 10; |
glx | 1:e52881eae197 | 13 | |
glx | 1:e52881eae197 | 14 | TempBuffer[index] = Rest + 0x30; |
glx | 1:e52881eae197 | 15 | index++; |
glx | 1:e52881eae197 | 16 | } |
glx | 1:e52881eae197 | 17 | while (Number > 0); |
glx | 1:e52881eae197 | 18 | |
glx | 1:e52881eae197 | 19 | for (int i = 0; i < index; i++) |
glx | 1:e52881eae197 | 20 | { |
glx | 1:e52881eae197 | 21 | CharBuffer[i] = TempBuffer[index - i - 1]; |
glx | 1:e52881eae197 | 22 | } |
glx | 1:e52881eae197 | 23 | CharBuffer[index] = '\0'; |
glx | 1:e52881eae197 | 24 | } |
glx | 1:e52881eae197 | 25 | |
glx | 1:e52881eae197 | 26 | |
glx | 1:e52881eae197 | 27 | void IntToChar(char *CharBuffer, int Number, char Digits) //Only works for positive numbers, adds leading 0s to numbers |
glx | 1:e52881eae197 | 28 | { |
glx | 1:e52881eae197 | 29 | |
glx | 1:e52881eae197 | 30 | char TempBuffer[32]; |
glx | 1:e52881eae197 | 31 | char index = 0; |
glx | 1:e52881eae197 | 32 | |
glx | 1:e52881eae197 | 33 | do |
glx | 1:e52881eae197 | 34 | { |
glx | 1:e52881eae197 | 35 | char Rest = Number % 10; |
glx | 1:e52881eae197 | 36 | Number = Number / 10; |
glx | 1:e52881eae197 | 37 | |
glx | 1:e52881eae197 | 38 | TempBuffer[index] = Rest + 0x30; |
glx | 1:e52881eae197 | 39 | index++; |
glx | 1:e52881eae197 | 40 | } |
glx | 1:e52881eae197 | 41 | while (Number > 0); |
glx | 1:e52881eae197 | 42 | |
glx | 1:e52881eae197 | 43 | while (index < Digits) |
glx | 1:e52881eae197 | 44 | { |
glx | 1:e52881eae197 | 45 | TempBuffer[index + 1] = TempBuffer[index]; |
glx | 1:e52881eae197 | 46 | TempBuffer[index] = 0x30; |
glx | 1:e52881eae197 | 47 | index++; |
glx | 1:e52881eae197 | 48 | } |
glx | 1:e52881eae197 | 49 | |
glx | 1:e52881eae197 | 50 | for (int i = 0; i < index; i++) |
glx | 1:e52881eae197 | 51 | { |
glx | 1:e52881eae197 | 52 | CharBuffer[i] = TempBuffer[index - i - 1]; |
glx | 1:e52881eae197 | 53 | } |
glx | 1:e52881eae197 | 54 | |
glx | 1:e52881eae197 | 55 | CharBuffer[index] = '\0'; |
glx | 1:e52881eae197 | 56 | } |
glx | 1:e52881eae197 | 57 | |
glx | 1:e52881eae197 | 58 | void CombineChars(char *Destination, char *Source) //Combines two char[] |
glx | 1:e52881eae197 | 59 | { |
glx | 1:e52881eae197 | 60 | int ArrayIndex = 0; |
glx | 1:e52881eae197 | 61 | |
glx | 1:e52881eae197 | 62 | while(ArrayIndex < 255) |
glx | 1:e52881eae197 | 63 | { |
glx | 1:e52881eae197 | 64 | if(Destination[ArrayIndex] == '\0') break; |
glx | 1:e52881eae197 | 65 | ArrayIndex++; |
glx | 1:e52881eae197 | 66 | } |
glx | 1:e52881eae197 | 67 | |
glx | 1:e52881eae197 | 68 | for(int i = 0; i < 255; i++) |
glx | 1:e52881eae197 | 69 | { |
glx | 1:e52881eae197 | 70 | if(Source[i] == '\0') break; |
glx | 1:e52881eae197 | 71 | else Destination[ArrayIndex] = Source[i]; |
glx | 1:e52881eae197 | 72 | ArrayIndex++; |
glx | 1:e52881eae197 | 73 | } |
glx | 1:e52881eae197 | 74 | |
glx | 1:e52881eae197 | 75 | Destination[ArrayIndex] = '\0'; |
glx | 1:e52881eae197 | 76 | |
glx | 1:e52881eae197 | 77 | } |