Software serial Library
-
Hello,
MySensors :API is compatible with the softwareserial Library?
I have some errors when i compile my sketch:
SoftwareSerial\SoftwareSerial.cpp.o: In function__vector_3': C:\temp\libraries\SoftwareSerial/SoftwareSerial.cpp:305: multiple definition of__vector_3'
MySensors\MyGateway.cpp.o:/utility/PinChangeInt.h:563: first defined here
SoftwareSerial\SoftwareSerial.cpp.o: In function__vector_4': C:\temp\libraries\SoftwareSerial/SoftwareSerial.cpp:312: multiple definition of__vector_4'
MySensors\MyGateway.cpp.o:/utility/PinChangeInt.h:573: first defined here
SoftwareSerial\SoftwareSerial.cpp.o: In function__vector_5': C:\temp\libraries\SoftwareSerial/SoftwareSerial.cpp:319: multiple definition of__vector_5'regards
MySensors\MyGateway.cpp.o:/utility/PinChangeInt.h:583: first defined here -
I get the same error when using the SoftwareSerial library. More specific, it is a known limitation that you cannot use SoftwareSerial.h and PinChangeInt.h together without altering one or another.
Let me give you an example, I was in the same case as you are now, I wanted to use an RF ID reader (125 kHz - RDM6300) on a software serial pin, in my case was A2 (don't ask why, this was the only input pin that I have on an UNO, it is stuffed with keyboard, display, motor actuator for door opening, button for manual door opening, ringer button and NRF24 - this is my all in one entrance sensor :) ). So, what you have to do:
pin A2 is on Port C
- you have to disable in the SoftwareSerial.h the other intrerupts, except the one associated to PortC, that would be - PCINT1 is for Port C :
PCINT0 is for Port B
PCINT2 is for Port D
PCINT3 - it is not the case of 328P so you can leave it uncommentedso in SoftwareSerial.h comment the following for PCINT0 and 2:
#if defined(PCINT0_vect)
ISR(PCINT0_vect)
{
ReceiveOnlySoftwareSerial::handle_interrupt();
}
#endifThe other thing that you have to do now is to tell PinChangeInt.h that you use Port C for other purpose. To do this, in MyGateway.cpp, ahead of the #include "utility/PinChangeInt.h" you should include the following:
#define NO_PORTC_PINCHANGES
Save, upload, enjoy... And don't forget to modify back what you altered.
This assumes that you don't use intrerupts on pins...
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login