@@ -30,13 +30,25 @@ RS485Class::RS485Class(HardwareSerial& hwSerial, int txPin, int dePin, int rePin
3030
3131void RS485Class::begin (unsigned long baudrate)
3232{
33- begin (baudrate, SERIAL_8N1);
33+ begin (baudrate, SERIAL_8N1, RS485_DEFAULT_PRE_DELAY, RS485_DEFAULT_POST_DELAY);
34+ }
35+
36+ void RS485Class::begin (unsigned long baudrate, int predelay, int postdelay)
37+ {
38+ begin (baudrate, SERIAL_8N1, predelay, postdelay);
3439}
3540
3641void RS485Class::begin (unsigned long baudrate, uint16_t config)
42+ {
43+ begin (baudrate, config, RS485_DEFAULT_PRE_DELAY, RS485_DEFAULT_POST_DELAY);
44+ }
45+
46+ void RS485Class::begin (unsigned long baudrate, uint16_t config, int predelay, int postdelay)
3747{
3848 _baudrate = baudrate;
3949 _config = config;
50+ _predelay = predelay;
51+ _postdelay = postdelay;
4052
4153 if (_dePin > -1 ) {
4254 pinMode (_dePin, OUTPUT);
@@ -107,7 +119,7 @@ void RS485Class::beginTransmission()
107119{
108120 if (_dePin > -1 ) {
109121 digitalWrite (_dePin, HIGH);
110- delayMicroseconds (50 );
122+ if (_predelay) delayMicroseconds (_predelay );
111123 }
112124
113125 _transmisionBegun = true ;
@@ -118,7 +130,7 @@ void RS485Class::endTransmission()
118130 _serial->flush ();
119131
120132 if (_dePin > -1 ) {
121- delayMicroseconds (50 );
133+ if (_postdelay) delayMicroseconds (_postdelay );
122134 digitalWrite (_dePin, LOW);
123135 }
124136
0 commit comments