Skip to content
Snippets Groups Projects
servo.h 833 B
Newer Older
/*
 * sevoclass.h
 *
 *  Created on: 27. 6. 2014
 *      Author: martin.vitek
 */

#pragma once

#include <avr/io.h>
#include <math.h>
#include <stdint.h>

struct servo_data
{
	//Min a max doba kontrolniho pulzu v us
	uint16_t min_duration;
	uint16_t max_duration;
	
	//Parametry PWM
	uint16_t ICR_value;
	uint16_t pulse_duration; 
};

class servo_class
{
	//Promenne
	private:
		volatile uint8_t *ddr;
				 uint8_t  bit;
		volatile uint16_t *ocr;
				 volatile uint8_t  current_angle;
				 
				 servo_data &data;
				 uint8_t one_step;
				 uint8_t one_degree_pulse;

	//Metody
	public:
		//Konstruktor
		servo_class(volatile uint8_t *ddr, uint8_t  bit, volatile uint16_t *ocr, servo_data &data);

		//Destruktor
		~servo_class();
		
		//Metody
		void set_angle(uint8_t angle);
		uint8_t get_angle() { return current_angle; };
};