summaryrefslogtreecommitdiff
path: root/avr/bcd.c
blob: 5154852efd0bef13914122c8976fca8bb6084d36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
 * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

#include "stdlib.h"
#include "stdint.h"
#include "bcd.h"

uint_fast8_t bcd2bin(uint8_t val)
{
	return (val >> 4) * 10 + (val & 0x0f);
}

uint8_t bin2bcd (uint_fast8_t val)
{
	div_t d = div(val, 10);

	return (d.quot << 4) | d.rem;
}