xtotpUtil.c (1409B)
1 /** 2 * @file xtotpUtil.c 3 * @author Adrian STEINER (steia19@bfh.ch) 4 * @brief Includes some help functions and important defines 5 * @version 0.1 6 * @date 27-02-2025 7 * 8 * @copyright (C) 2025 Adrian STEINER 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation, either version 3 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program. If not, see <https: //www.gnu.org/licenses/>. 21 * 22 */ 23 24 #include "xtotpUtil.h" 25 26 #include <time.h> 27 28 uint32_t power10(const uint8_t exponent) { 29 uint32_t result = 1; 30 for (uint8_t i = 0; i < exponent; i++) { 31 result *= 10; 32 } 33 return result; 34 } 35 uint8_t base10Exponent(uint32_t number) { 36 uint8_t exponent = 0; 37 while (number / 10 != 0) { 38 number /= 10; 39 exponent++; 40 } 41 return exponent; 42 } 43 44 uint32_t getTickDiff(uint32_t newTick, uint32_t oldTick) { 45 // Check no overflow 46 if (newTick >= oldTick) { 47 return newTick - oldTick; 48 } else { 49 return UINT32_MAX - oldTick + newTick; 50 } 51 }