blob: e259ac42e78a8ee5d3c19eab9307a50d832098c9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#include "Print.h"
void Print::print(const char *s) //uart_puts
{
int n;
for (n = 0; *s; s++, n++) {
write(*s);
}
//return n;
return;
}
void Print::print(int val, RADIX_FORMAT format)
{
if( val == 0){
write('0');
return;
}
if(format == BYTE)
{
write((char)(val & 0xff));
return;
}
char s[33];
int i,j;
i=j=0; // header of strings
if (val<0)
{ //minus value
s[i]='-';
val=~val+1;
i++;
j++;
}
switch(format)
{
case BIN:
while (val>0)
{ // do until zero
s[i++]=radix_bin[val%format];
val/=format;
}
break;
case OCT:
while (val>0)
{ // do until zero
s[i++]=radix_oct[val%format];
val/=format;
}
break;
case DEC: //RADIX = Decimal
while (val>0)
{ // do until zero
s[i++]=radix_dec[val%format];
val/=format;
}
break;
case HEX: //RADIX = Hexadecimal
while (val>0)
{ // do until zero
s[i++]=radix_hex[val%format];
val/=format;
}
break;
default:
break;
}
s[i--]='\0'; // EOF
while (j<i)
{ // reverse strings array
char t;
t=s[j]; s[j]=s[i]; s[i]=t;
j++; i--;
}
print(s);
return ;
}
void Print::write(const char *s, int length)
{
int n;
for(n=0;n<length;s++,n++)
{
write(*s);
}
return;
}
void Print::println(const char *s)
{
print(s);
println();
return;
}
void Print::println(int val, RADIX_FORMAT format)
{
print(val,format);
println();
return;
}
void Print::println(void)
{
write ('\r');
write ('\n');
return;
}
void Print::print(const char c)
{
write(c);
return;
}
void Print::println(const char c)
{
write(c);
println();
return;
}
|