Prusa MINI Firmware overview
servo_private.h File Reference
#include <stdint.h>

Go to the source code of this file.

Classes

struct  ServoPin_t
 
struct  ServoInfo_t
 

Macros

#define MIN_PULSE_WIDTH   544
 
#define MAX_PULSE_WIDTH   2400
 
#define DEFAULT_PULSE_WIDTH   1500
 
#define REFRESH_INTERVAL   20000
 
#define SERVOS_PER_TIMER   12
 
#define MAX_SERVOS   (_Nbr_16timers * SERVOS_PER_TIMER)
 
#define INVALID_SERVO   255
 
#define usToTicks(_us)   (clockCyclesPerMicrosecond() * (_us) / (SERVO_TIMER_PRESCALER))
 
#define ticksToUs(_ticks)   (unsigned(_ticks) * (SERVO_TIMER_PRESCALER) / clockCyclesPerMicrosecond())
 
#define SERVO_INDEX_TO_TIMER(_servo_nbr)   ((timer16_Sequence_t)(_servo_nbr / (SERVOS_PER_TIMER)))
 
#define SERVO_INDEX_TO_CHANNEL(_servo_nbr)   (_servo_nbr % (SERVOS_PER_TIMER))
 
#define SERVO_INDEX(_timer, _channel)   ((_timer*(SERVOS_PER_TIMER)) + _channel)
 
#define SERVO(_timer, _channel)   (servo_info[SERVO_INDEX(_timer,_channel)])
 

Functions

void initISR (timer16_Sequence_t timer)
 
void finISR (timer16_Sequence_t timer)
 

Variables

uint8_t ServoCount
 
ServoInfo_t servo_info [MAX_SERVOS]
 

Macro Definition Documentation

◆ MIN_PULSE_WIDTH

#define MIN_PULSE_WIDTH   544

Marlin 3D Printer Firmware Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]

Based on Sprinter and grbl. Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. servo_private.h - Interrupt driven Servo library for Arduino using 16 bit timers- Version 2 Copyright (c) 2009 Michael Margolis. All right reserved.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

◆ MAX_PULSE_WIDTH

#define MAX_PULSE_WIDTH   2400

◆ DEFAULT_PULSE_WIDTH

#define DEFAULT_PULSE_WIDTH   1500

◆ REFRESH_INTERVAL

#define REFRESH_INTERVAL   20000

◆ SERVOS_PER_TIMER

#define SERVOS_PER_TIMER   12

◆ MAX_SERVOS

#define MAX_SERVOS   (_Nbr_16timers * SERVOS_PER_TIMER)

◆ INVALID_SERVO

#define INVALID_SERVO   255

◆ usToTicks

#define usToTicks (   _us)    (clockCyclesPerMicrosecond() * (_us) / (SERVO_TIMER_PRESCALER))

◆ ticksToUs

#define ticksToUs (   _ticks)    (unsigned(_ticks) * (SERVO_TIMER_PRESCALER) / clockCyclesPerMicrosecond())

◆ SERVO_INDEX_TO_TIMER

#define SERVO_INDEX_TO_TIMER (   _servo_nbr)    ((timer16_Sequence_t)(_servo_nbr / (SERVOS_PER_TIMER)))

◆ SERVO_INDEX_TO_CHANNEL

#define SERVO_INDEX_TO_CHANNEL (   _servo_nbr)    (_servo_nbr % (SERVOS_PER_TIMER))

◆ SERVO_INDEX

#define SERVO_INDEX (   _timer,
  _channel 
)    ((_timer*(SERVOS_PER_TIMER)) + _channel)

◆ SERVO

#define SERVO (   _timer,
  _channel 
)    (servo_info[SERVO_INDEX(_timer,_channel)])

Function Documentation

◆ initISR()

void initISR ( timer16_Sequence_t  timer)

◆ finISR()

void finISR ( timer16_Sequence_t  timer)

Variable Documentation

◆ ServoCount

uint8_t ServoCount

◆ servo_info

ServoInfo_t servo_info[MAX_SERVOS]