-
Notifications
You must be signed in to change notification settings - Fork 0
/
program_options.c
126 lines (124 loc) · 2.09 KB
/
program_options.c
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
#include <avr/interrupt.h>
#include <stdlib.h>
#include "program.h"
#include "HD44780.h"
#include "i2c.h"
#include "pcf8583.h"
//Funkcja s³u¿y do wybrania opcji, która ma byæ zmieniona w trybie edycji opcji
void changeOptions(int8_t value)
{
int8_t maxValue = 2;
int8_t minValue = 0;
if(value > 0)
{
if(option < maxValue)
{
option += 1;
}
else
{
option = minValue;
}
}
else if(value < 0)
{
if(option > minValue)
{
option -= 1;
}
else
{
option = maxValue;
}
}
}
//Funkcja s³u¿y edycji wybranej opcji w trybie edycji opcji
void changeOptionsValue(int8_t value)
{
if(option == 0)
{
if(highlightControl.highlightType == 0)
{
highlightControl.highlightType = 1;
}
else
{
highlightControl.highlightType = 0;
}
}
else if(option == 1)
{
if(3 < highlightControl.highlightTime && highlightControl.highlightTime < 120)
{
highlightControl.highlightTime += value;
}
else if(3 == highlightControl.highlightTime && value > 0)
{
highlightControl.highlightTime += 1;
}
else if(highlightControl.highlightTime == 120 && value < 0)
{
highlightControl.highlightTime -= 1;
}
}
else if(option == 2)
{
if(alarmEnableBit == 0)
{
alarmEnableBit = 1;
}
else
{
alarmEnableBit = 0;
}
}
}
//Funkcja obs³uguj¹ca przyciski w trybie edycji opcji
void optionsManager(int8_t przyciskLewo, int8_t przyciskPrawo, int8_t przyciskWyboru)
{
if(optionChoose == 0)
{
if(przyciskLewo == 0)
{
changeOptions(-1);
drawLCD_OptionsMode();
_delay_ms(200);
}
else if(przyciskPrawo == 0)
{
changeOptions(1);
drawLCD_OptionsMode();
_delay_ms(200);
}
else if(przyciskWyboru == 0)
{
optionChoose = 1;
editMode();
_delay_ms(200);
}
}
else if(optionChoose == 1)
{
if(przyciskLewo == 0)
{
changeOptionsValue(-1);
drawLCD_OptionsMode();
editMode();
_delay_ms(200);
}
else if(przyciskPrawo == 0)
{
changeOptionsValue(1);
drawLCD_OptionsMode();
editMode();
_delay_ms(200);
}
else if(przyciskWyboru == 0)
{
optionChoose = 0;
elapsedTime = 0;
editMode();
_delay_ms(200);
}
}
}