@@ -48,7 +48,6 @@ void timer_2(void) __interrupt(5) {}
4848
4949uint8_t main_cycle = 0 ;
5050
51- #define INTERVAL_1MS 1U
5251#define INTERVAL_5MS 5U
5352#define INTERVAL_100MS 100U
5453#define INTERVAL_250MS 250U
@@ -107,7 +106,6 @@ void main(void) {
107106
108107 INFO ("System76 EC board '%s', version '%s'\n" , board (), version ());
109108
110- systick_t last_time_1ms = 0 ;
111109 systick_t last_time_5ms = 0 ;
112110 systick_t last_time_100ms = 0 ;
113111 systick_t last_time_250ms = 0 ;
@@ -122,32 +120,34 @@ void main(void) {
122120 __bit evt_1sec = 0 ;
123121
124122 for (main_cycle = 0 ;; main_cycle ++ ) {
125- systick_t time = time_get ();
123+ // Calculate which intervals need to run at systick update.
124+ if (evt_systick ) {
125+ evt_systick = 0 ;
126+
127+ systick_t time = time_get ();
126128
127- // FIXME: These only need to run on systick event instead of every loop.
128- if ((time - last_time_1ms ) >= INTERVAL_1MS ) {
129- last_time_1ms = time ;
130129 evt_1ms = 1 ;
131- }
132- if ((time - last_time_5ms ) >= INTERVAL_5MS ) {
133- last_time_5ms = time ;
134- evt_5ms = 1 ;
135- }
136- if ((time - last_time_100ms ) >= INTERVAL_100MS ) {
137- last_time_100ms = time ;
138- evt_100ms = 1 ;
139- }
140- if ((time - last_time_250ms ) >= INTERVAL_250MS ) {
141- last_time_250ms = time ;
142- evt_250ms = 1 ;
143- }
144- if ((time - last_time_500ms ) >= INTERVAL_500MS ) {
145- last_time_500ms = time ;
146- evt_500ms = 1 ;
147- }
148- if ((time - last_time_1sec ) >= INTERVAL_1SEC ) {
149- last_time_1sec = time ;
150- evt_1sec = 1 ;
130+
131+ if ((time - last_time_5ms ) >= INTERVAL_5MS ) {
132+ last_time_5ms = time ;
133+ evt_5ms = 1 ;
134+ }
135+ if ((time - last_time_100ms ) >= INTERVAL_100MS ) {
136+ last_time_100ms = time ;
137+ evt_100ms = 1 ;
138+ }
139+ if ((time - last_time_250ms ) >= INTERVAL_250MS ) {
140+ last_time_250ms = time ;
141+ evt_250ms = 1 ;
142+ }
143+ if ((time - last_time_500ms ) >= INTERVAL_500MS ) {
144+ last_time_500ms = time ;
145+ evt_500ms = 1 ;
146+ }
147+ if ((time - last_time_1sec ) >= INTERVAL_1SEC ) {
148+ last_time_1sec = time ;
149+ evt_1sec = 1 ;
150+ }
151151 }
152152
153153 if (evt_1ms ) {
0 commit comments