Firmwares/hifive1-vp/riscv-bldc-forced-commutation/bsp/libwrap/misc/write_hex.c

20 lines
453 B
C
Raw Permalink Normal View History

2018-09-25 18:31:29 +02:00
/* See LICENSE of license details. */
#include <stdint.h>
#include <unistd.h>
#include "platform.h"
2018-09-26 08:07:48 +02:00
void write_hex(int fd, unsigned long int hex)
2018-09-25 18:31:29 +02:00
{
uint8_t ii;
uint8_t jj;
char towrite;
write(fd , "0x", 2);
2018-09-26 08:07:48 +02:00
for (ii = sizeof(unsigned long int) * 2 ; ii > 0; ii--) {
2018-09-25 18:31:29 +02:00
jj = ii - 1;
uint8_t digit = ((hex & (0xF << (jj*4))) >> (jj*4));
towrite = digit < 0xA ? ('0' + digit) : ('A' + (digit - 0xA));
write(fd, &towrite, 1);
}
}