/* * delay.c * * Created: 03.06.2023 12:34:55 * Author: Admin */ #include "func.h" void delay() { for(volatile long i = 0; i < 1000; i++){}; } int count_digits(long number) { int count = 0; if (number == 0) { return 1; } if (number < 0) { number = -number; } while (number > 0) { number /= 10; count++; } return count; } void split_digits(long number, int* digits, int size) { int digit; int index = 0; if (number == 0) { digits[0] = 0; return; } if (number < 0) { number = -number; } while (number > 0 && index < size) { digit = number % 10; digits[index] = digit; number /= 10; index++; } } static char map(int digit) { if (digit >= 0 && digit <= 9) return digit + 0x09; else return 0x01; } void map_digits(char* arr, int *digits, int size) { int idx = 0; for (int i = size - 1; i >= 0; i--) { arr[idx] = map(digits[i]); idx++; } } void prepare_data(char *arr, int number, int size) { int digits[size]; split_digits(number, digits, size); map_digits(arr, digits, size); }