#include <cstdint>
#include <iostream>
#include <limits>
using namespace std;
static uint32_t current_time = numeric_limits<uint32_t>::max() - 1000;
uint32_t millis() {
return current_time;
}
void advance_time() {
cout << "... time advances ..." << endl;
++current_time;
}
int main() {
uint32_t curr_millis = millis();
cout << "millis() = " << millis() << endl;
for (uint8_t i = 0; i < 8; ++i) {
int32_t next_gps_update = millis() + 1000;
cout << "next_gps_update = millis() + 1000 = " << next_gps_update << " (unsigned: " << uint32_t(next_gps_update) << ")" << endl;
advance_time();
cout << "millis() = " << millis() << endl;
cout << "millis() > next_gps_update = " << (millis() > next_gps_update) << endl;
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGxpbWl0cz4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdGF0aWMgdWludDMyX3QgY3VycmVudF90aW1lID0gbnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSAtIDEwMDA7Cgp1aW50MzJfdCBtaWxsaXMoKSB7CglyZXR1cm4gY3VycmVudF90aW1lOwp9Cgp2b2lkIGFkdmFuY2VfdGltZSgpIHsKCWNvdXQgPDwgIi4uLiB0aW1lIGFkdmFuY2VzIC4uLiIgPDwgZW5kbDsKCSsrY3VycmVudF90aW1lOwp9CgppbnQgbWFpbigpIHsKCXVpbnQzMl90IGN1cnJfbWlsbGlzID0gbWlsbGlzKCk7Cgljb3V0IDw8ICJtaWxsaXMoKSA9ICIgPDwgbWlsbGlzKCkgPDwgZW5kbDsKCglmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCA4OyArK2kpIHsKCQlpbnQzMl90IG5leHRfZ3BzX3VwZGF0ZSA9IG1pbGxpcygpICsgMTAwMDsKCQljb3V0IDw8ICJuZXh0X2dwc191cGRhdGUgPSBtaWxsaXMoKSArIDEwMDAgPSAiIDw8IG5leHRfZ3BzX3VwZGF0ZSA8PCAiICh1bnNpZ25lZDogIiA8PCB1aW50MzJfdChuZXh0X2dwc191cGRhdGUpIDw8ICIpIiA8PCBlbmRsOwoKCQlhZHZhbmNlX3RpbWUoKTsKCgkJY291dCA8PCAibWlsbGlzKCkgPSAiIDw8IG1pbGxpcygpIDw8IGVuZGw7CgkJY291dCA8PCAibWlsbGlzKCkgPiBuZXh0X2dwc191cGRhdGUgPSAiIDw8IChtaWxsaXMoKSA+IG5leHRfZ3BzX3VwZGF0ZSkgPDwgZW5kbDsKCX0KCglyZXR1cm4gMDsKfQ==