utils.c 766 B

1234567891011121314151617181920212223242526
  1. #include "utils.h"
  2. #include "hal_math.h"
  3. static uint64_t base_data;
  4. void data_bit_move(uint8_t start_bit, uint8_t bit_len, uint64_t data)
  5. {
  6. uint64_t mask = 0;
  7. uint64_t source_data = (uint64_t)data;
  8. mask = hal_pow(2, bit_len) - 1;
  9. base_data |= (mask & source_data) << start_bit;
  10. }
  11. void product_array(uint8_t send_array[8])
  12. {
  13. send_array[0] = (uint8_t)base_data;
  14. send_array[1] = (uint8_t)(base_data >> 8);
  15. send_array[2] = (uint8_t)(base_data >> 16);
  16. send_array[3] = (uint8_t)(base_data >> 24);
  17. send_array[4] = (uint8_t)(base_data >> 32);
  18. send_array[5] = (uint8_t)(base_data >> 40);
  19. send_array[6] = (uint8_t)(base_data >> 48);
  20. send_array[7] = (uint8_t)(base_data >> 56);
  21. base_data = 0;
  22. }