@@ -45,6 +45,24 @@ class GodmodeState {
45
45
46
46
static GodmodeState* instance;
47
47
48
+ struct SleepDef {
49
+ bool sleep_enable = false ;
50
+ unsigned int sleep_enable_count = 0 ;
51
+ unsigned int sleep_disable_count = 0 ;
52
+ unsigned char sleep_mode = 0 ;
53
+ unsigned int sleep_cpu_count = 0 ;
54
+ unsigned int sleep_mode_count = 0 ;
55
+ unsigned int sleep_bod_disable_count = 0 ;
56
+ };
57
+
58
+ struct WdtDef {
59
+ bool wdt_enable = false ;
60
+ unsigned char timeout = 0 ;
61
+ unsigned int wdt_enable_count = 0 ;
62
+ unsigned int wdt_disable_count = 0 ;
63
+ unsigned int wdt_reset_count = 0 ;
64
+ };
65
+
48
66
public:
49
67
unsigned long micros;
50
68
unsigned long seed;
@@ -54,6 +72,8 @@ class GodmodeState {
54
72
struct PortDef serialPort[NUM_SERIAL_PORTS];
55
73
struct InterruptDef interrupt[MOCK_PINS_COUNT]; // not sure how to get actual number
56
74
struct PortDef spi;
75
+ struct SleepDef sleep;
76
+ struct WdtDef wdt;
57
77
58
78
void resetPins () {
59
79
for (int i = 0 ; i < MOCK_PINS_COUNT; ++i) {
@@ -87,12 +107,32 @@ class GodmodeState {
87
107
spi.readDelayMicros = 0 ;
88
108
}
89
109
110
+ void resetSleep () {
111
+ sleep .sleep_enable = false ;
112
+ sleep .sleep_enable_count = 0 ;
113
+ sleep .sleep_disable_count = 0 ;
114
+ sleep .sleep_mode = 0 ;
115
+ sleep .sleep_cpu_count = 0 ;
116
+ sleep .sleep_mode_count = 0 ;
117
+ sleep .sleep_bod_disable_count = 0 ;
118
+ }
119
+
120
+ void resetWdt () {
121
+ wdt.wdt_enable = false ;
122
+ wdt.timeout = 0 ;
123
+ wdt.wdt_enable_count = 0 ;
124
+ wdt.wdt_disable_count = 0 ;
125
+ wdt.wdt_reset_count = 0 ;
126
+ }
127
+
90
128
void reset () {
91
129
resetClock ();
92
130
resetPins ();
93
131
resetInterrupts ();
94
132
resetPorts ();
95
133
resetSPI ();
134
+ resetSleep ();
135
+ resetWdt ();
96
136
seed = 1 ;
97
137
}
98
138
@@ -132,7 +172,7 @@ int analogRead(uint8_t);
132
172
void analogWrite (uint8_t , int );
133
173
#define analogReadResolution (...) _NOP()
134
174
#define analogWriteResolution (...) _NOP()
135
- void attachInterrupt (uint8_t interrupt, void ISR (void ), uint8_t mode);
175
+ void attachInterrupt (uint8_t interrupt, void isr (void ), uint8_t mode);
136
176
void detachInterrupt (uint8_t interrupt);
137
177
138
178
// TODO: issue #26 to track the commanded state here
0 commit comments