mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-12 01:53:07 +03:00
Allman now (#6080)
* switch restyle script for CI * remove confirmation * restyle with allman
This commit is contained in:
committed by
david gauchard
parent
625c3a62c4
commit
98125f8860
@ -1,21 +1,21 @@
|
||||
/*
|
||||
Servo library using shared TIMER1 infrastructure
|
||||
Servo library using shared TIMER1 infrastructure
|
||||
|
||||
Original Copyright (c) 2015 Michael C. Miller. All right reserved.
|
||||
Original Copyright (c) 2015 Michael C. Miller. 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 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.
|
||||
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
|
||||
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
|
||||
*/
|
||||
|
||||
#if defined(ESP8266)
|
||||
@ -43,87 +43,92 @@ int improved_map(int value, int minIn, int maxIn, int minOut, int maxOut)
|
||||
|
||||
Servo::Servo()
|
||||
{
|
||||
_attached = false;
|
||||
_valueUs = DEFAULT_PULSE_WIDTH;
|
||||
_minUs = MIN_PULSE_WIDTH;
|
||||
_maxUs = MAX_PULSE_WIDTH;
|
||||
_attached = false;
|
||||
_valueUs = DEFAULT_PULSE_WIDTH;
|
||||
_minUs = MIN_PULSE_WIDTH;
|
||||
_maxUs = MAX_PULSE_WIDTH;
|
||||
}
|
||||
|
||||
Servo::~Servo() {
|
||||
detach();
|
||||
Servo::~Servo()
|
||||
{
|
||||
detach();
|
||||
}
|
||||
|
||||
|
||||
uint8_t Servo::attach(int pin)
|
||||
{
|
||||
return attach(pin, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
|
||||
return attach(pin, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
|
||||
}
|
||||
|
||||
uint8_t Servo::attach(int pin, uint16_t minUs, uint16_t maxUs)
|
||||
{
|
||||
if (!_attached) {
|
||||
digitalWrite(pin, LOW);
|
||||
pinMode(pin, OUTPUT);
|
||||
_pin = pin;
|
||||
_attached = true;
|
||||
}
|
||||
if (!_attached)
|
||||
{
|
||||
digitalWrite(pin, LOW);
|
||||
pinMode(pin, OUTPUT);
|
||||
_pin = pin;
|
||||
_attached = true;
|
||||
}
|
||||
|
||||
// keep the min and max within 200-3000 us, these are extreme
|
||||
// ranges and should support extreme servos while maintaining
|
||||
// reasonable ranges
|
||||
_maxUs = max((uint16_t)250, min((uint16_t)3000, maxUs));
|
||||
_minUs = max((uint16_t)200, min(_maxUs, minUs));
|
||||
// keep the min and max within 200-3000 us, these are extreme
|
||||
// ranges and should support extreme servos while maintaining
|
||||
// reasonable ranges
|
||||
_maxUs = max((uint16_t)250, min((uint16_t)3000, maxUs));
|
||||
_minUs = max((uint16_t)200, min(_maxUs, minUs));
|
||||
|
||||
write(_valueUs);
|
||||
write(_valueUs);
|
||||
|
||||
return pin;
|
||||
return pin;
|
||||
}
|
||||
|
||||
void Servo::detach()
|
||||
{
|
||||
if (_attached) {
|
||||
stopWaveform(_pin);
|
||||
_attached = false;
|
||||
digitalWrite(_pin, LOW);
|
||||
}
|
||||
if (_attached)
|
||||
{
|
||||
stopWaveform(_pin);
|
||||
_attached = false;
|
||||
digitalWrite(_pin, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
void Servo::write(int value)
|
||||
{
|
||||
// treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
|
||||
if (value < _minUs) {
|
||||
// assumed to be 0-180 degrees servo
|
||||
value = constrain(value, 0, 180);
|
||||
// writeMicroseconds will contrain the calculated value for us
|
||||
// for any user defined min and max, but we must use default min max
|
||||
value = improved_map(value, 0, 180, _minUs, _maxUs);
|
||||
}
|
||||
writeMicroseconds(value);
|
||||
// treat values less than 544 as angles in degrees (valid values in microseconds are handled as microseconds)
|
||||
if (value < _minUs)
|
||||
{
|
||||
// assumed to be 0-180 degrees servo
|
||||
value = constrain(value, 0, 180);
|
||||
// writeMicroseconds will contrain the calculated value for us
|
||||
// for any user defined min and max, but we must use default min max
|
||||
value = improved_map(value, 0, 180, _minUs, _maxUs);
|
||||
}
|
||||
writeMicroseconds(value);
|
||||
}
|
||||
|
||||
void Servo::writeMicroseconds(int value)
|
||||
{
|
||||
_valueUs = value;
|
||||
if (_attached) {
|
||||
startWaveform(_pin, _valueUs, REFRESH_INTERVAL - _valueUs, 0);
|
||||
}
|
||||
_valueUs = value;
|
||||
if (_attached)
|
||||
{
|
||||
startWaveform(_pin, _valueUs, REFRESH_INTERVAL - _valueUs, 0);
|
||||
}
|
||||
}
|
||||
|
||||
int Servo::read() // return the value as degrees
|
||||
{
|
||||
// read returns the angle for an assumed 0-180, so we calculate using
|
||||
// the normal min/max constants and not user defined ones
|
||||
return improved_map(readMicroseconds(), _minUs, _maxUs, 0, 180);
|
||||
// read returns the angle for an assumed 0-180, so we calculate using
|
||||
// the normal min/max constants and not user defined ones
|
||||
return improved_map(readMicroseconds(), _minUs, _maxUs, 0, 180);
|
||||
}
|
||||
|
||||
int Servo::readMicroseconds()
|
||||
{
|
||||
return _valueUs;
|
||||
return _valueUs;
|
||||
}
|
||||
|
||||
bool Servo::attached()
|
||||
{
|
||||
return _attached;
|
||||
return _attached;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,21 +1,21 @@
|
||||
/*
|
||||
Servo.h - Interrupt driven Servo library for Esp8266 using timers
|
||||
Original Copyright (c) 2015 Michael C. Miller. All right reserved.
|
||||
Servo.h - Interrupt driven Servo library for Esp8266 using timers
|
||||
Original Copyright (c) 2015 Michael C. Miller. 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 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.
|
||||
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
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
||||
|
||||
// A servo is activated by creating an instance of the Servo class passing
|
||||
@ -37,7 +37,7 @@
|
||||
// readMicroseconds() - Gets the last written servo pulse width in microseconds. (was read_us() in first release)
|
||||
// attached() - Returns true if there is a servo attached.
|
||||
// detach() - Stops an attached servos from pulsing its i/o pin.
|
||||
|
||||
|
||||
|
||||
#ifndef Servo_h
|
||||
#define Servo_h
|
||||
@ -63,18 +63,18 @@ public:
|
||||
Servo();
|
||||
~Servo();
|
||||
uint8_t attach(int pin); // attach the given pin to the next free channel, sets pinMode, returns channel number or 0 if failure
|
||||
uint8_t attach(int pin, uint16_t min, uint16_t max); // as above but also sets min and max values for writes.
|
||||
uint8_t attach(int pin, uint16_t min, uint16_t max); // as above but also sets min and max values for writes.
|
||||
void detach();
|
||||
void write(int value); // if value is < 200 its treated as an angle, otherwise as pulse width in microseconds
|
||||
void writeMicroseconds(int value); // Write pulse width in microseconds
|
||||
void write(int value); // if value is < 200 its treated as an angle, otherwise as pulse width in microseconds
|
||||
void writeMicroseconds(int value); // Write pulse width in microseconds
|
||||
int read(); // returns current pulse width as an angle between 0 and 180 degrees
|
||||
int readMicroseconds(); // returns current pulse width in microseconds for this servo (was read_us() in first release)
|
||||
bool attached(); // return true if this servo is attached, otherwise false
|
||||
bool attached(); // return true if this servo is attached, otherwise false
|
||||
private:
|
||||
bool _attached;
|
||||
uint8_t _pin;
|
||||
uint16_t _minUs;
|
||||
uint16_t _maxUs;
|
||||
uint16_t _minUs;
|
||||
uint16_t _maxUs;
|
||||
uint16_t _valueUs;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user