-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.c
More file actions
78 lines (63 loc) · 1.29 KB
/
main.c
File metadata and controls
78 lines (63 loc) · 1.29 KB
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
// main.c
// Written by Robert Leonard
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdint.h>
#include <stdio.h>
#include "lcd/LCDControl.h"
#include "lcd/lcd.h"
#include "lcd/ViewController.h"
#include "hotwire/Hotwire.h"
#include "encoder/Encoder.h"
#include "encoder/Debounce.h"
#include "feedback/Buzzer.h"
#include "Interface.h"
#include "sensors/INA219.h"
#include "pid/PID.h"
#include "interrupt/Interrupt.h"
int main(void) {
sei();
LCDControl_init();
LCDControl_set_contrast(180);
LCDControl_set_backlight(255);
lcd_init(LCD_DISP_ON);
lcd_clrscr();
VC_init();
VC_startup_screen();
Interrupt_init();
Hotwire_init();
Encoder_init();
Buzzer_init();
INA219_init();
PID_init();
_delay_ms(300);
uint8_t next_view = VIEW_MAIN_STOPPED;
while (1) {
switch (next_view) {
case VIEW_MAIN_STOPPED: {
next_view = Interface_main_hotwire_off();
break;
}
case VIEW_MAIN_RUNNING: {
next_view = Interface_main_hotwire_on();
break;
}
case VIEW_SETTINGS_MAIN: {
next_view = Interface_settings_main();
break;
}
case VIEW_SETTINGS_LCD: {
next_view = Interface_settings_lcd();
break;
}
case VIEW_SETTINGS_PID: {
next_view = Interface_settings_pid();
break;
}
default: {
break;
}
}
}
}