Move files to sbc_fw directory to make Arduino IDE shut up
This commit is contained in:
parent
db8f8408af
commit
63583ce984
11 changed files with 0 additions and 0 deletions
57
sbc_fw/utils.cpp
Normal file
57
sbc_fw/utils.cpp
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
* @file utils.cpp
|
||||
* @brief Utility functions implementation
|
||||
*
|
||||
* Created: 21.09.2025
|
||||
* Author: ThePetrovich
|
||||
*
|
||||
* Copyright YKSA - Sakha Aerospace Systems, LLC.
|
||||
* See the LICENSE file for details.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#include "utils.h"
|
||||
#include "config.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
uint16_t calculate_crc16_xmodem(uint8_t *data, uint16_t len)
|
||||
{
|
||||
uint16_t crc = 0;
|
||||
uint8_t i;
|
||||
|
||||
while (len--) {
|
||||
crc ^= (uint16_t)(*data++) << 8;
|
||||
for (i = 0; i < 8; i++) {
|
||||
if (crc & 0x8000) {
|
||||
crc = (crc << 1) ^ 0x1021;
|
||||
} else {
|
||||
crc <<= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
int16_t adc_to_temperature_c(uint16_t adc_value)
|
||||
{
|
||||
// MCP9700: 500 mV at 0°C, 10 mV per degree, vref = 3.0V
|
||||
// Result in 0.1°C units
|
||||
return (int16_t)((adc_value * ADC_VREF_MV / ADC_RESOLUTION - TEMP_SENSOR_OFFSET_MV));
|
||||
}
|
||||
|
||||
uint16_t adc_to_voltage_mv(uint16_t adc_value) { return (uint16_t)(adc_value * VOLTAGE_MV_PER_STEP); }
|
||||
|
||||
uint16_t read_adc_oversampled(uint8_t pin, uint8_t samples)
|
||||
{
|
||||
uint32_t sum = 0;
|
||||
|
||||
uint8_t shift = ((samples == 64) ? 3 : (samples == 16) ? 2 : (samples == 4) ? 1 : 0);
|
||||
|
||||
for (uint8_t i = 0; i < samples; i++) {
|
||||
sum += analogRead(pin);
|
||||
}
|
||||
|
||||
return (uint16_t)(sum >> shift);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue