Fan data is now saved in the array

Closes #9
This commit is contained in:
Sebastian H. Gabrielli 2024-04-30 11:08:03 +02:00
parent 275c40498f
commit dd53b4dbf2
3 changed files with 28 additions and 2 deletions

View File

@ -66,6 +66,9 @@ typedef struct {
// Fan history variables // Fan history variables
extern volatile uint16_t fan1_history[512]; extern volatile uint16_t fan1_history[512];
extern volatile uint16_t fan2_history[512]; extern volatile uint16_t fan2_history[512];
// Fan history index variable
volatile uint16_t fan1_history_index = 0;
volatile uint16_t fan2_history_index = 0;
// Config // Config
extern volatile config_t config; extern volatile config_t config;

View File

@ -98,8 +98,25 @@ ISR(AC1_AC_vect){ // AC1 vec flag
// TIMER INTERUPT // TIMER INTERUPT
ISR (TCA0_OVF_vect) { ISR (TCA0_OVF_vect) {
cli(); cli();
RPM_calculation(fan1_edge_counter,timer_period_ms);
RPM_calculation(fan2_edge_counter,timer_period_ms); // Calculate the fanspeed
fan1_history[fan1_history_index] = RPM_calculation(fan1_edge_counter,timer_period_ms);
fan2_history[fan2_history_index] = RPM_calculation(fan2_edge_counter,timer_period_ms);
// Increment the index, or reset if it is at the top
if (fan1_history_index < 512) {
fan1_history_index++;
} else {
fan1_history_index = 0;
}
if (fan2_history_index < 512) {
fan2_history_index++;
} else {
fan2_history_index = 0;
}
// Reset the edge counter
fan1_edge_counter = 0; fan1_edge_counter = 0;
fan2_edge_counter = 0; fan2_edge_counter = 0;
TCA0.SINGLE.INTFLAGS = TCA_SINGLE_OVF_bm ; TCA0.SINGLE.INTFLAGS = TCA_SINGLE_OVF_bm ;

View File

@ -29,6 +29,12 @@ extern "C" {
* and inspiration form practice 6 for TCA0 setup * and inspiration form practice 6 for TCA0 setup
*/ */
// Fan history variables
extern volatile uint16_t fan1_history[512];
extern volatile uint16_t fan2_history[512];
// Fan history index variable
volatile uint16_t fan1_history_index = 0;
volatile uint16_t fan2_history_index = 0;
// INITALICE TIMER COUNTER // INITALICE TIMER COUNTER
void init_TCA0(); void init_TCA0();