#pragma once #include "servo.h" #include "lib/adc.h" #include "lib/usart.h" //Working from 25° to 140° class Controller { //Enums public: enum servo_positions { OPEN_POSITION = 40, CLOSE_POSITION = 120 }; //Instances public: servo_class servo; adc_class adc; usart uart; //Variables public: volatile uint16_t current_positive; volatile uint16_t current_negative; volatile uint8_t channel; //Methods public: Controller(); void timer0_handler() { adc.start_conversion(); } void adc_handler() { switch (channel) { case 0: current_positive = ADC; channel++; adc.set_channel(adc.ADC1); adc.start_conversion(); break; case 1: current_negative = ADC; channel = 0; adc.set_channel(adc.ADC0); default: channel = 0; break; } } void print_debug(); }; extern Controller controller;