SoftwareSerial32 and other interrupts conflicts


(Daniel kirubakaran) #1

Hi,
I have resolved the interrupt problem for my drone project which uses ppm signal.Now i am able to control my drone using RC as the channel values are getting perfect as expected.

My next step is to add gps module(using neo 6m)
So that it is going to be an autonomous drone to hover in a particular location

So i added Softwareserial32 library and tested with 4800baud in a standalone code of gps module ,the location values are accurate

Now i have to add the decoding part of location as a function in my main drone code.

The ISR for ppm signals of RC and rxISR in Softwareserial32 library are making some conflicts as the Ss32 lib have used noInterrupts() & interrupts() function in many places ,that stops the interrupts for a long time and i also searched about this same issues in arduino forums

https://forum.arduino.cc/index.php?topic=469493.msg3214709#msg3214709

https://forum.arduino.cc/index.php?topic=490988.0

Problems are similar !
Many are telling Softwareserial is inefficient but i have no othergo as Hifive1 doesn’t have other UART

> So could be the solution for this?

I tried commenting the noInterrupts() & interrupts() func’s but the issue is not yet solved.

And also what is this #ifdef NEOSWSERIAL_EXTERNAL_PCINT

** // Client code must call SoftwareSerial32::rxISR(PINB) in PCINT handler** part in Ss32 lib all about?