streamline step1
This commit is contained in:
+23
-14
@@ -13,6 +13,25 @@ static uint32_t module_time_left;
|
||||
static void game_timer_task(void *arg);
|
||||
static uint32_t sat_sub(uint32_t x, uint32_t y);
|
||||
|
||||
static void write_game_time(uint32_t millis) {
|
||||
if (millis > 60'000) {
|
||||
int disp_time = (millis / 60'000) * 100;
|
||||
disp_time = disp_time + ((millis % 60'000) / 1'000);
|
||||
set_game_sseg_num(disp_time, 2);
|
||||
} else {
|
||||
set_game_sseg_num(millis / 100, 1);
|
||||
}
|
||||
}
|
||||
static void write_module_time(uint32_t millis) {
|
||||
if (millis > 60'000) {
|
||||
int disp_time = (millis / 60'000) * 100;
|
||||
disp_time = disp_time + ((millis % 60'000) / 1'000);
|
||||
set_module_sseg_num(disp_time, 2);
|
||||
} else {
|
||||
set_module_sseg_num(millis / 100, 1);
|
||||
}
|
||||
}
|
||||
|
||||
void init_game_module_timer(void) {
|
||||
xTaskCreate(game_timer_task, "game_module_timer", 4096, NULL, 10, NULL);
|
||||
}
|
||||
@@ -35,6 +54,7 @@ void stop_module_timer(void) {
|
||||
|
||||
void set_game_time(uint32_t new_time) {
|
||||
game_time_left = new_time;
|
||||
write_game_time(game_time_left);
|
||||
}
|
||||
|
||||
uint32_t get_game_time() {
|
||||
@@ -43,6 +63,7 @@ uint32_t get_game_time() {
|
||||
|
||||
void set_module_time(uint32_t new_time) {
|
||||
module_time_left = new_time;
|
||||
write_module_time(module_time_left);
|
||||
}
|
||||
|
||||
uint32_t get_module_time() {
|
||||
@@ -58,23 +79,11 @@ static void game_timer_task(void *arg)
|
||||
vTaskDelayUntil( &lastWakeTime, pdMS_TO_TICKS(frequency));
|
||||
if (is_game_playing) {
|
||||
game_time_left = sat_sub(game_time_left, frequency);
|
||||
if (game_time_left > 60'000) {
|
||||
int disp_time = (game_time_left / 60'000) * 100;
|
||||
disp_time = disp_time + ((game_time_left % 60'000) / 1'000);
|
||||
set_game_sseg_num(disp_time, 2);
|
||||
} else {
|
||||
set_game_sseg_num(game_time_left / 100, 1);
|
||||
}
|
||||
write_game_time(game_time_left);
|
||||
}
|
||||
if (is_module_playing) {
|
||||
module_time_left = sat_sub(module_time_left, frequency);
|
||||
if (module_time_left > 60'000) {
|
||||
int disp_time = (module_time_left / 60'000) * 100;
|
||||
disp_time = disp_time + ((module_time_left % 60'000) / 1'000);
|
||||
set_module_sseg_num(disp_time, 2);
|
||||
} else {
|
||||
set_module_sseg_num(module_time_left / 100, 1);
|
||||
}
|
||||
write_module_time(module_time_left);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user