#include "fan_speeeed.h" #include "uart.h" void TCA0_init() { TCA0.SINGLE.INTCTRL = TCA_SINGLE_OVF_bm ; TCA0.SINGLE.CTRLA = TCA_SINGLE_ENABLE_bm | TCA_SINGLE_CLKSEL_DIV1024_gc ; /* Sysclk /1024 */ TCA0.SINGLE.PERBUF = 0x0F42; } void TCA0_update_period_ms() { TCA0.SINGLE.PERBUF = (F_CPU*(1/timer_period)/1024); /* F_CPU * F_IRQ / TCA_prescaler */ } int read_input_get_RPM() { fan_speed=(voltage_value_counter/timer_period)*6000*3; voltage_value_counter = 0; return fan_speed; } void PORT_init(){ PORTB.PIN2CTRL = PORT_ISC_FALLING_gc; } ISR ( TCA0_OVF_vect ) { read_input_get_RPM(); TCA0.SINGLE.INTFLAGS = TCA_SINGLE_OVF_bm ; } ISR(PORTB_PORT_vect){ PORTB.INTFLAGS = PIN2_bm; voltage_value_counter ++; }