9 #ifdef ACCESSORIES_DEBUG_MODE 10 #ifdef ARDUINO_ARCH_SAM 11 void Port::CheckPinNb(
int inPin, PIN_TYPE inType,
const char *inFunc)
17 unsigned long expanderId = EXPANDER_PORT_EXPID(inPin);
20 PortExpander::CheckExpanderId(expanderId);
26 pin = GPIO_to_Arduino_pin((GPIO_pin_t)inPin);
28 if (pin <= 0 || pin >= NUM_DIGITAL_PINS)
30 if (pin < A0 || pin > A7)
32 Serial.print(F(
"Pin "));
34 Serial.print(F(
" error in "));
35 Serial.println(inFunc);
44 void Port::CheckPinNb(
int inPin, PIN_TYPE inType,
const __FlashStringHelper* inFunc)
50 unsigned long expanderId = EXPANDER_PORT_EXPID(inPin);
53 PortExpander::CheckExpanderId(expanderId);
59 pin = GPIO_to_Arduino_pin((GPIO_pin_t)inPin);
61 if (pin <= 0 || pin >= NUM_DIGITAL_PINS)
63 if (pin < A0 || pin > A7)
65 Serial.print(F(
"Pin "));
67 Serial.print(F(
" error in "));
68 Serial.println(inFunc);
82 this->
speed = DEFAULTSPEED;
87 if (inType == UNDEFINED)
90 if (inType == ANALOG_INVERTED)
93 if (inType == DIGITAL_INVERTED)
106 if (inType == UNDEFINED)
111 unsigned long expanderId = EXPANDER_PORT_EXPID(inPin);
114 #ifdef ACCESSORIES_DEBUG_MODE 115 PortExpander::CheckExpanderId(expanderId);
117 int pinExp = EXPANDER_PORT_PIN(inPin);
126 pin = Arduino_to_GPIO_pin(inPin);
127 pinMode2f((GPIO_pin_t) pin, OUTPUT);
140 if (inType == UNDEFINED)
143 CHECKPIN(inPin, inType,
"Incorrect pin number in MovePin");
146 unsigned long expanderId = 0;
147 if (GPIO_to_Arduino_pin((GPIO_pin_t)inPin) == -1)
148 expanderId = EXPANDER_PORT_EXPID(inPin);
152 #ifdef ACCESSORIES_DEBUG_MODE 153 PortExpander::CheckExpanderId(expanderId);
155 int pinExp = EXPANDER_PORT_PIN(inPin);
170 digitalWrite2f((GPIO_pin_t)inPin, this->
MapValue(inValue, inType));
175 analogWrite(inPin, this->
MapValue(0, inType));
183 uint8_t oldSpeed = this->
speed;
184 this->
speed = inSpeed;
222 #ifdef ACCESSORIES_PRINT_ACCESSORIES 223 void Port::printPort()
227 void Port::printPortPin(
int inPin, PIN_TYPE inType)
231 unsigned long expanderId = EXPANDER_PORT_EXPID(inPin);
234 Serial.print(expanderId);
236 Serial.print(EXPANDER_PORT_PIN(inPin));
243 Serial.print(GPIO_to_Arduino_pin((GPIO_pin_t)inPin));
252 case UNDEFINED: Serial.print(
"UNDEFINED)");
break;
253 case DIGITAL: Serial.print(
"DIGITAL)");
break;
254 case DIGITAL_INVERTED: Serial.print(
"DIGITAL_INVERTED)");
break;
255 case ANALOG: Serial.print(
"ANALOG)");
break;
256 case ANALOG_INVERTED: Serial.print(
"ANALOG_INVERTED)");
break;
PORT_STATE GetPortState() const
virtual void MoveLeftDir(unsigned long inDuration = 0)
virtual void MoveRightDir(unsigned long inDuration = 0)
PORT_STATE MoveToggle(unsigned long inDuration = 0)
virtual int SetSpeed(int inSpeed)
virtual void digitalWrite(int inPin, int inValue) = 0
void MovePin(int inPin, int inValue, PIN_TYPE inType = UNDEFINED) const
virtual void beginPin(int inPin, PIN_TYPE inType) = 0
int beginPin(int inPin, PIN_TYPE inType = UNDEFINED) const
PIN_TYPE GetPinType() const
int MapValue(int inValue, PIN_TYPE inType = UNDEFINED) const
virtual void analogWrite(int inPin, int inValue) = 0
void SetPortState(PORT_STATE inState)
void SetPinType(PIN_TYPE inType)