blob: ff44ecaa88dd9b8ef20fec35b0ede90378d87eac (
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
|
#include <tice.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define EnterKey 5
#define maxline 22
double fToC(double fahr);
double cToF(double cel);
double fToK(double fahr);
double kToF(double kel);
double getInput(void);
void output(int operation);
int main(void)
{
while(true) {
os_ClrHome();
printf("TempCalc\nSelect:\n1. Fahrenheit to Celsius\n2. Celsius to Fahrenheit\n3. Fahrenheit to Kelvin\n4. Kelvin to Fahrenheit\n5. Exit");
uint16_t key = os_GetKey();
if(key == 147)
break;
output(key);
/* Waits for a key press */
while (!os_GetCSC());
}
os_ClrHome();
return 0;
}
void output(int operation)
{
os_ClrHome();
double value = 0.0;
switch(operation) {
case 143:
printf("Fahrenheit to Celsius\n");
value = fToC(getInput());
break;
case 144:
printf("Celsius to Fahrenheit \n");
value = cToF(getInput());
break;
case 145:
printf("Fahrenheit to Kelvin\n");
value = fToK(getInput());
break;
case 146:
printf("Kelvin to Fahrenheit \n");
value = kToF(getInput());
break;
default: printf("Invalid");
}
printf("\nOutput: %f", value);
}
double getInput(void)
{
uint8_t key, i = 0;
char number[maxline];
char *eptr;
double value = 0.0;
printf("Input: ");
while((key = os_GetKey()) != EnterKey) {
if(key == 141 || key == 140)
key--;
number[i] = (key - 142) + '0';
printf("%c", number[i++]);
}
number[i] = '\0';
value = strtod(number, &eptr);
return value;
}
double fToC(double fahr)
{
double cel = 0;
cel = (5.0 / 9.0) * (fahr - 32.0);
return cel;
}
double fToK(double fahr)
{
double kel = 0;
kel = fToC(fahr) + 273;
return kel;
}
double cToF(double cel)
{
double fahr = 0;
fahr = (cel * (9.0 / 5.0)) + 32.0;
return fahr;
}
double kToF(double kel)
{
double fahr = 0;
fahr = cToF(kel - 273);
return fahr;
}
|