Git Product home page Git Product logo

Comments (7)

Kevin-M-Smith avatar Kevin-M-Smith commented on July 26, 2024

Hi @samarth003, can you try to use an example from the SoftwareSerial library on your DUE board and let me know if it will compile for you? (Both libraries use the statements that appear in the errors.)

from arduino-sdi-12.

samarth003 avatar samarth003 commented on July 26, 2024

Hi @Kevin-M-Smith,
Thanks for the prompt reply. I tried importing SoftwareSerial library and used its example on the DUE board.
It gives me the following error:

/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:128:2: error: #error This version of SoftwareSerial supports only 20, 16 and 8MHz processors
#error This version of SoftwareSerial supports only 20, 16 and 8MHz processors
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'bool SoftwareSerial::listen()':
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:184:23: error: 'SREG' was not declared in this scope
uint8_t oldSREG = SREG;
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:185:9: error: 'cli' was not declared in this scope
cli();
^
In file included from /opt/arduino-1.5.7/hardware/arduino/sam/cores/arduino/Arduino.h:189:0,
from /home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:43:
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'void SoftwareSerial::setTX(uint8_t)':
/opt/arduino-1.5.7/hardware/arduino/sam/variants/arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio_' to 'uint8_t {aka unsigned char}' [-fpermissive]
#define digitalPinToPort(P) ( g_APinDescription[P].pPort )
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:362:18: note: in expansion of macro 'digitalPinToPort'
uint8_t port = digitalPinToPort(tx);
^
/opt/arduino-1.5.7/hardware/arduino/sam/variants/arduino_due_x/variant.h:66:44: error: base operand of '->' is not a pointer
#define portOutputRegister(port) ( &(port->PIO_ODSR) )
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:363:27: note: in expansion of macro 'portOutputRegister'
transmitPortRegister = portOutputRegister(port);
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'void SoftwareSerial::setRX(uint8_t)':
/opt/arduino-1.5.7/hardware/arduino/sam/variants/arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio
' to 'uint8_t {aka unsigned char}' [-fpermissive]
#define digitalPinToPort(P) ( g_APinDescription[P].pPort )
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:373:18: note: in expansion of macro 'digitalPinToPort'
uint8_t port = digitalPinToPort(rx);
^
/opt/arduino-1.5.7/hardware/arduino/sam/variants/arduino_due_x/variant.h:67:44: error: base operand of '->' is not a pointer
#define portInputRegister(port) ( &(port->PIO_PDSR) )
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:374:26: note: in expansion of macro 'portInputRegister'
_receivePortRegister = portInputRegister(port);
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:385:31: error: 'table' was not declared in this scope
for (unsigned i=0; i<sizeof(table)/sizeof(table[0]); ++i)
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:401:38: error: 'digitalPinToPCICR' was not declared in this scope
if (digitalPinToPCICR(_receivePin))
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:403:78: error: 'digitalPinToPCICRbit' was not declared in this scope
*digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:403:79: error: '_BV' was not declared in this scope
*digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:404:37: error: 'digitalPinToPCMSK' was not declared in this scope
*digitalPinToPCMSK(_receivePin) |= _BV(digitalPinToPCMSKbit(_receivePin));
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:404:78: error: 'digitalPinToPCMSKbit' was not declared in this scope
*digitalPinToPCMSK(_receivePin) |= _BV(digitalPinToPCMSKbit(_receivePin));
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'void SoftwareSerial::end()':
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:419:36: error: 'digitalPinToPCMSK' was not declared in this scope
if (digitalPinToPCMSK(_receivePin))
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:420:77: error: 'digitalPinToPCMSKbit' was not declared in this scope
*digitalPinToPCMSK(_receivePin) &= ~_BV(digitalPinToPCMSKbit(_receivePin));
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:420:78: error: '_BV' was not declared in this scope
*digitalPinToPCMSK(_receivePin) &= ~_BV(digitalPinToPCMSKbit(_receivePin));
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'virtual size_t SoftwareSerial::write(uint8_t)':
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:455:21: error: 'SREG' was not declared in this scope
uint8_t oldSREG = SREG;
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:456:7: error: 'cli' was not declared in this scope
cli(); // turn off interrupts for a clean txmit
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:460:26: error: 'XMIT_START_ADJUSTMENT' was not declared in this scope
tunedDelay(_tx_delay + XMIT_START_ADJUSTMENT);
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp: In member function 'virtual void SoftwareSerial::flush()':
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:503:21: error: 'SREG' was not declared in this scope
uint8_t oldSREG = SREG;
^
/home/bmubuntu/Arduino/libraries/SoftwareSerial/SoftwareSerial.cpp:504:7: error: 'cli' was not declared in this scope
cli();
^

checking the SoftwareSerial.h, it is configured for 8,16 and 20MHz processors, so i guess it is not compatible with DUE's ARM processor.
Any workaround for this?
Is the Arduino-SDI12 lib also made to work with 8,16 and 20 MHz processors?

Thanks!

from arduino-sdi-12.

Kevin-M-Smith avatar Kevin-M-Smith commented on July 26, 2024

I'm not worried about the speed of the ARM chip, but the errors later on (e.g. digitalPinToPCICR not defined) are pretty serious. The library is set up to respond to incoming signals from the sensors by detecting a change of state on the input pin (pin change interrupt / PCINT). It does not appear that the ARM chip uses the same code bindings for creating PCINTs. I will send a note to the Arduino developers mailing list to see if there is a remedy. Thanks for bringing this to my attention, I'll let you know what I find out.

from arduino-sdi-12.

samarth003 avatar samarth003 commented on July 26, 2024

Thanks @Kevin-M-Smith,
Do let me know where we can go with this.

from arduino-sdi-12.

Kevin-M-Smith avatar Kevin-M-Smith commented on July 26, 2024

Hi @samarth003, my email finally got through the approval process to go out to the developers list.

The responses will come back here: https://groups.google.com/a/arduino.cc/forum/#!topic/developers/4nFR-zx8kZA.

I'll try to monitor the thread to see if anything helpful comes through - but you may also want to track it.

Regards,
Kevin

from arduino-sdi-12.

tchkikouna avatar tchkikouna commented on July 26, 2024

Hello,
I have the same error with Arduino DUE. I don't understand the solution that you propose.

here is the error message:

C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:125:2: error: #error This version of SoftwareSerial supports only 20, 16 and 8MHz processors
#error This version of SoftwareSerial supports only 20, 16 and 8MHz processors
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'bool SoftwareSerial::listen()':
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:181:23: error: 'SREG' was not declared in this scope
uint8_t oldSREG = SREG;
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:182:9: error: 'cli' was not declared in this scope
cli();
^
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\sam\cores\arduino/Arduino.h:189:0,
from C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:43:
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::setTX(uint8_t)':
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio_' to 'uint8_t {aka unsigned char}' [-fpermissive]
#define digitalPinToPort(P) ( g_APinDescription[P].pPort )
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:357:18: note: in expansion of macro 'digitalPinToPort'
uint8_t port = digitalPinToPort(tx);
^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:65:44: error: base operand of '->' is not a pointer
#define portOutputRegister(port) ( &(port->PIO_ODSR) )
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:358:27: note: in expansion of macro 'portOutputRegister'
transmitPortRegister = portOutputRegister(port);
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::setRX(uint8_t)':
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:62:65: error: invalid conversion from 'Pio
' to 'uint8_t {aka unsigned char}' [-fpermissive]
#define digitalPinToPort(P) ( g_APinDescription[P].pPort )
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:368:18: note: in expansion of macro 'digitalPinToPort'
uint8_t port = digitalPinToPort(rx);
^
C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:66:44: error: base operand of '->' is not a pointer
#define portInputRegister(port) ( &(port->PIO_PDSR) )
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:369:26: note: in expansion of macro 'portInputRegister'
_receivePortRegister = portInputRegister(port);
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:380:31: error: 'table' was not declared in this scope
for (unsigned i=0; i<sizeof(table)/sizeof(table[0]); ++i)
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:396:38: error: 'digitalPinToPCICR' was not declared in this scope
if (digitalPinToPCICR(_receivePin))
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:398:78: error: 'digitalPinToPCICRbit' was not declared in this scope
*digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:398:79: error: '_BV' was not declared in this scope
*digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:399:37: error: 'digitalPinToPCMSK' was not declared in this scope
*digitalPinToPCMSK(_receivePin) |= _BV(digitalPinToPCMSKbit(_receivePin));
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:399:78: error: 'digitalPinToPCMSKbit' was not declared in this scope
*digitalPinToPCMSK(_receivePin) |= _BV(digitalPinToPCMSKbit(_receivePin));
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::end()':
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:414:36: error: 'digitalPinToPCMSK' was not declared in this scope
if (digitalPinToPCMSK(_receivePin))
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:415:77: error: 'digitalPinToPCMSKbit' was not declared in this scope
*digitalPinToPCMSK(_receivePin) &= ~_BV(digitalPinToPCMSKbit(_receivePin));
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:415:78: error: '_BV' was not declared in this scope
*digitalPinToPCMSK(_receivePin) &= ~_BV(digitalPinToPCMSKbit(_receivePin));
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'virtual size_t SoftwareSerial::write(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:450:21: error: 'SREG' was not declared in this scope
uint8_t oldSREG = SREG;
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:451:7: error: 'cli' was not declared in this scope
cli(); // turn off interrupts for a clean txmit
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:455:26: error: 'XMIT_START_ADJUSTMENT' was not declared in this scope
tunedDelay(_tx_delay + XMIT_START_ADJUSTMENT);
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'virtual void SoftwareSerial::flush()':
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:498:21: error: 'SREG' was not declared in this scope
uint8_t oldSREG = SREG;
^
C:\Program Files (x86)\Arduino\libraries\SoftwareSerial\SoftwareSerial.cpp:499:7: error: 'cli' was not declared in this scope
cli();
^
Erreur lors de la compilation.

I would be grateful for your help

from arduino-sdi-12.

Kevin-M-Smith avatar Kevin-M-Smith commented on July 26, 2024

@tchkikouna, at the time there is no solution to this problem.

The library does not currently support the ARM CPU architecture.

The following boards should work:
* Arduino Uno (and other ATmega328 boards, like Arduino Duemilanove)
* Arduino Mega (and other ATmega2560 boards)

@steve-2 , did I miss any other compatible boards that you know of?

from arduino-sdi-12.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.