Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions hal/common/inc/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

/* Standard library Headers */
#include <stdint.h>
#include <stdbool.h>

/* Inter-component Headers */

Expand All @@ -36,6 +37,7 @@

/**
* @brief Initializes the time abstraction layer
* @return True if processor time is successfully acquired, false otherwise.
*/
void hal_time_init(void);

Expand Down
58 changes: 58 additions & 0 deletions hal/host/src/adc.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*******************************************************************************************************************************
* @file adc.c
*
* @brief Source file for the adc module
*
* @date 2026-03-19
* @author Nathan Duprix
*******************************************************************************************************************************/

/* Standard library Headers */
#include <stdint.h>

/* Inter-component Headers */
#include "host_state.h"
#include "esc.h"

/* Intra-component Headers */
#include "adc.h"

/*******************************************************************************************************************************
* Private Variables
*******************************************************************************************************************************/

/*******************************************************************************************************************************
* Function Definitions
*******************************************************************************************************************************/

void hal_adc_init(void) {
/* Initializing values in extern hal_host_state */
for (int i = 0; i < NUM_MOTOR_PHASES; i++) {
hal_host_state.phase_currents_A[i] = 0.0f;
}
hal_host_state.bus_voltage_V = 0;
hal_host_state.temperature_C = 0;
}

bool hal_adc_get_phase_currents(float phase_currents_A[NUM_MOTOR_PHASES]) {
Comment thread
leogmendoza marked this conversation as resolved.
/* Null ptr check */
if (phase_currents_A == NULL) { return false; }
for (int i = 0; i < NUM_MOTOR_PHASES; i++) {
phase_currents_A[i] = hal_host_state.phase_currents_A[i];
}
return true;
}

bool hal_adc_get_bus_voltage(float *bus_voltage_V) {
Comment thread
nathhandup marked this conversation as resolved.
/* Null ptr check */
if (bus_voltage_V == NULL) { return false; }
*bus_voltage_V = hal_host_state.bus_voltage_V;
return true;

}

bool hal_adc_get_temperature(float *temperature_C) {
Comment thread
nathhandup marked this conversation as resolved.
if (temperature_C == NULL) { return false; }
*temperature_C = hal_host_state.temperature_C;
return true;
}
43 changes: 43 additions & 0 deletions hal/host/src/time.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*******************************************************************************************************************************
* @file time.c
*
* @brief Source file for the time module
*
* @date 2026-03-19
* @author Nathan Duprix
*******************************************************************************************************************************/

/* Standard library Headers */
#include <stdint.h>

/* Inter-component Headers */
#include "host_state.h"

/* Intra-component Headers */
#include "time.h"

/*******************************************************************************************************************************
* Private Variables
*******************************************************************************************************************************/

/*******************************************************************************************************************************
* Function Definitions
*******************************************************************************************************************************/

void hal_time_init(void) {
hal_host_state.time_us = 0U;
}

uint32_t hal_time_get_ms(void) {
/* Grabbing milliseconds */
return hal_host_state.time_us / 1000;
}

uint32_t hal_time_get_us(void) {
/* Grabbing microseconds */
return hal_host_state.time_us;
}

void hal_time_delay_ms(uint32_t delay_ms) {
hal_host_state.time_us += delay_ms * 1000;
}