Skip to content

Commit

Permalink
Removed more ticking from interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
walkermburns committed Feb 9, 2024
1 parent 4befcd0 commit d196c2a
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 26 deletions.
3 changes: 2 additions & 1 deletion lib/interfaces/include/MCP_ADC.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ class MCP_ADC : public AnalogMultiSensor<MCP_ADC_NUM_CHANNELS>
MCP_ADC(int spiPinCS);

// Functions
void tick(const SysTick_s &tick);
/* Tick at 100Hz */
void tick();
void sample();
};

Expand Down
10 changes: 3 additions & 7 deletions lib/interfaces/src/MCP_ADC.tpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,10 @@ MCP_ADC<MCP_ADC_NUM_CHANNELS>::MCP_ADC(const int spiPinCS__)
: MCP_ADC<MCP_ADC_NUM_CHANNELS>(spiPinCS__, MCP_ADC_DEFAULT_SPI_SDI, MCP_ADC_DEFAULT_SPI_SDO, MCP_ADC_DEFAULT_SPI_CLK, MCP_ADC_DEFAULT_SPI_SPEED) {}

template <int MCP_ADC_NUM_CHANNELS>
void MCP_ADC<MCP_ADC_NUM_CHANNELS>::tick(const SysTick_s &tick)
void MCP_ADC<MCP_ADC_NUM_CHANNELS>::tick()
{
// Sample at 100hz
if (tick.triggers.trigger100)
{
MCP_ADC<MCP_ADC_NUM_CHANNELS>::sample();
MCP_ADC<MCP_ADC_NUM_CHANNELS>::convert();
}
MCP_ADC<MCP_ADC_NUM_CHANNELS>::sample();
MCP_ADC<MCP_ADC_NUM_CHANNELS>::convert();
}

template <int MCP_ADC_NUM_CHANNELS>
Expand Down
2 changes: 1 addition & 1 deletion lib/interfaces/src/MCUInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,6 @@ void MCUInterface::tick(// CAR_STATE fsm_state,
update_mcu_status_CAN();
// Push into buffer
enqueue_CAN_mcu_status();
}
}


50 changes: 33 additions & 17 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,34 +152,51 @@ void loop() {
Instead, the main code will just call the interfaces
*/
void tick_all_interfaces(const SysTick_s& current_system_tick) {
// Tick all adcs
ADC1.tick(current_system_tick);
ADC2.tick(current_system_tick);
ADC3.tick(current_system_tick);
// Tick steering system
steering_system.tick(current_system_tick, ADC1.get().conversions[MCU15_STEERING_CHANNEL]);

TriggerBits_s t = current_system_tick.triggers;

if (t.trigger10) {

} else if (t.trigger50) {

telem_interface.tick(current_system_tick,
ADC1.get(),
ADC2.get(), // Add MCP3204 functionality for corner board
ADC3.get(), // Add implementation to get()
steering1.convert());

} else if (t.trigger100) {

// Tick all adcs
ADC1.tick();
ADC2.tick();
ADC3.tick();

}

// Read shutdown circuits
main_ecu.read_mcu_status();
telem_interface.tick(current_system_tick,
ADC1.get(),
ADC2.get(), // Add MCP3204 functionality for corner board
ADC3.get(), // Add implementation to get()
steering1.convert());
}

void tick_all_systems(const SysTick_s& current_system_tick) {

// tick pedals system
pedals_system.tick(
current_system_tick,
ADC1.get().conversions[MCU15_ACCEL1_CHANNEL],
ADC1.get().conversions[MCU15_ACCEL2_CHANNEL],
ADC1.get().conversions[MCU15_BRAKE1_CHANNEL],
ADC1.get().conversions[MCU15_BRAKE2_CHANNEL]
);
ADC1.get().conversions[MCU15_BRAKE2_CHANNEL]);

// tick steering system
steering_system.tick(
current_system_tick,
ADC1.get().conversions[MCU15_STEERING_CHANNEL]
);
ADC1.get().conversions[MCU15_STEERING_CHANNEL]);

// tick drivetrain system
drivetrain.tick(current_system_tick);

// tick torque controller mux
torque_controller_mux.tick(
current_system_tick,
drivetrain.get_current_data(),
Expand All @@ -190,8 +207,7 @@ void tick_all_systems(const SysTick_s& current_system_tick) {
(const AnalogConversion_s) {}, // RL load cell reading. TODO: get data from rear load cells
(const AnalogConversion_s) {}, // RR load cell reading. TODO: get data from rear load cells
dashboard.getDialMode(),
dashboard.torqueButtonPressed()
);
dashboard.torqueButtonPressed());

}

0 comments on commit d196c2a

Please sign in to comment.