parent
275c40498f
commit
dd53b4dbf2
@ -66,6 +66,9 @@ typedef struct {
|
||||
// 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;
|
||||
|
||||
// Config
|
||||
extern volatile config_t config;
|
||||
|
||||
@ -98,8 +98,25 @@ ISR(AC1_AC_vect){ // AC1 vec flag
|
||||
// TIMER INTERUPT
|
||||
ISR (TCA0_OVF_vect) {
|
||||
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;
|
||||
fan2_edge_counter = 0;
|
||||
TCA0.SINGLE.INTFLAGS = TCA_SINGLE_OVF_bm ;
|
||||
|
||||
@ -29,6 +29,12 @@ extern "C" {
|
||||
* 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
|
||||
void init_TCA0();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user