@@ -30,13 +30,25 @@ RS485Class::RS485Class(HardwareSerial& hwSerial, int txPin, int dePin, int rePin
30
30
31
31
void RS485Class::begin (unsigned long baudrate)
32
32
{
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);
34
39
}
35
40
36
41
void 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)
37
47
{
38
48
_baudrate = baudrate;
39
49
_config = config;
50
+ _predelay = predelay;
51
+ _postdelay = postdelay;
40
52
41
53
if (_dePin > -1 ) {
42
54
pinMode (_dePin, OUTPUT);
@@ -107,7 +119,7 @@ void RS485Class::beginTransmission()
107
119
{
108
120
if (_dePin > -1 ) {
109
121
digitalWrite (_dePin, HIGH);
110
- delayMicroseconds (50 );
122
+ if (_predelay) delayMicroseconds (_predelay );
111
123
}
112
124
113
125
_transmisionBegun = true ;
@@ -118,7 +130,7 @@ void RS485Class::endTransmission()
118
130
_serial->flush ();
119
131
120
132
if (_dePin > -1 ) {
121
- delayMicroseconds (50 );
133
+ if (_postdelay) delayMicroseconds (_postdelay );
122
134
digitalWrite (_dePin, LOW);
123
135
}
124
136
0 commit comments