mirror of https://github.com/rusefi/bldc.git
52 lines
860 B
C
52 lines
860 B
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdbool.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
|
|
#include "buffer.h"
|
|
|
|
void test_read(unsigned char *data) {
|
|
int32_t ind = 0;
|
|
union {
|
|
float f;
|
|
uint32_t i;
|
|
} flt;
|
|
|
|
float res = buffer_get_float32_auto(data, &ind);
|
|
printf("Read buffer: %g\r\n", res);
|
|
|
|
ind = 0;
|
|
flt.i = buffer_get_uint32(data, &ind);
|
|
printf("Read typecast: %g\r\n", flt.f);
|
|
}
|
|
|
|
int main(void) {
|
|
unsigned char data[4];
|
|
int32_t ind = 0;
|
|
|
|
float number = 0.5e-38;
|
|
|
|
printf("Test with subnormal number: %g\r\n", number);
|
|
|
|
union {
|
|
float f;
|
|
uint32_t i;
|
|
} flt;
|
|
|
|
printf("=== Add using buffer ===\r\n");
|
|
buffer_append_float32_auto(data, number, &ind);
|
|
ind = 0;
|
|
|
|
test_read(data);
|
|
|
|
printf("=== Add using typecast ===\r\n");
|
|
flt.f = number;
|
|
ind = 0;
|
|
buffer_append_uint32(data, flt.i, &ind);
|
|
test_read(data);
|
|
|
|
return 0;
|
|
}
|
|
|