Comments (7)
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.
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.
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.
Thanks @Kevin-M-Smith,
Do let me know where we can go with this.
from arduino-sdi-12.
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.
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.
@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)
- Question. HOT 2
- new tinyAVR boards support. tips?
- ESPhome HOT 4
- Missing check for 8.33mS marking before checking address for sdi12 slave/sensor HOT 1
- Able to adjust Break and Marking timing from Arduino code
- Support for Arduino R4 Renesas chip? HOT 1
- Doesn't work on Arduino GIGA R1
- i am using hydros21 sensor which is working on sdi12 protocol and currently i am stuck in a issue which is sensor is not working properly and not given data correctly so any one help me for this HOT 2
- ESP32- Core panic when using in conjunction with the "preferences" library. HOT 1
- NRF52 Support HOT 1
- IDE 2.0 compilation problem HOT 1
- Sparkfun Artemis and CS320 pyranometer HOT 16
- SDI12 - ESP32 NOT OPEN BUS HOT 9
- Watchdog Problem SAMD21 HOT 4
- Adding a Direction Control Pin HOT 11
- ASR6501 - Cubecell support HOT 2
- Can not read measurements HOT 8
- Do you have any plans to support rp2040 platform ? HOT 1
- Documentation missing? HOT 3
- SDI12 with SoftwareSerial (Stopgap Fix not working) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arduino-sdi-12.