mirror of
https://github.com/DashyFox/StackSport.git
synced 2025-05-04 07:10:17 +00:00
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
/*
|
|
* Print.c
|
|
*
|
|
* Created on: Aug 19, 2024
|
|
* Author: DashyFox
|
|
*/
|
|
#include "Print.h"
|
|
|
|
void print(char* str){
|
|
unsigned int size = 0;
|
|
while (str[size] != '\0')
|
|
{
|
|
size++;
|
|
}
|
|
CDC_Transmit_FS((unsigned char*)str, size);
|
|
}
|
|
|
|
void int_to_str(int number, char *str, int base)
|
|
{
|
|
static const char digits[] = "0123456789ABCDEF";
|
|
char buffer[32];
|
|
char *ptr = buffer + sizeof(buffer) - 1;
|
|
int is_negative = 0;
|
|
|
|
if (number < 0 && base == 10) {
|
|
is_negative = 1;
|
|
number = -number;
|
|
}
|
|
|
|
*ptr = '\0';
|
|
do {
|
|
*--ptr = digits[number % base];
|
|
number /= base;
|
|
} while (number);
|
|
|
|
if (is_negative) {
|
|
*--ptr = '-';
|
|
}
|
|
|
|
// Дополнение ведущим нулем для шестнадцатеричных чисел
|
|
if (base == 16 && (buffer + sizeof(buffer) - 1 - ptr) == 1) {
|
|
*--ptr = '0';
|
|
}
|
|
|
|
strcpy(str, ptr);
|
|
}
|
|
|
|
void printNumber(long int number)
|
|
{
|
|
char buffer[BUFFER_SIZE];
|
|
|
|
// Преобразование числа в строку
|
|
int_to_str(number, buffer, 10); // 10 — это основание системы счисления (десятичная система)
|
|
strcat(buffer, "\r\n"); // Добавление новой строки
|
|
|
|
// Отправка строки через USB CDC
|
|
CDC_Transmit_FS((uint8_t*)buffer, strlen(buffer));
|
|
}
|