Hi everybody!
I'm trying to create new library and I've followed the instructions posted here: Arduino IDE 1.5: Library specification · arduino/Arduino Wiki · GitHub.
Since this library should work for Due and Micro, I've used the pre-compiler instruction
#if defined(ARDUINO_ARCH_SAM)
to identify special code for Arduino Due, and
#if defined(__AVR_ATmega32U4__)
to identify special code for Micro.
The library needs as support others libraries, such as "AltSoftSerial" (to create new RX/TX pins simulated via software for Micro) and "DueFlashStorage" (so Due can store some data in his code memory).
So, I make the inclusion of AltSoftSerial only for Micro, and DueFlashStorage only for Due.
As inticated in the above link, I create a folder named as my library (QBMicroController) which has the subfolders:
- src: contains QBMicroController.h and .cpp and other subfolers with others files
- examples
- deviceSpecificLibrary: contains AltSoftSerial and DueFlashStorage subfolders
Then, I tried to compile the mainLoop.ino example in the folder "examples":
If I select "Micro" as Board in Arduino IDE every thing is fine and the compilation works well.
If I select "Due" as Board, then I have the following errors:
Arduino: 1.5.6-r2 (Windows 7), Board: "Arduino Due (Programming Port)"
In file included from C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:25:
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\/config/known_boards.h:101: error: #error "Please define your board timer and pins"
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp: In static member function 'static void AltSoftSerial::init(uint32_t)':
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:64: error: 'CONFIG_TIMER_NOPRESCALE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:68: error: 'CONFIG_TIMER_PRESCALE_8' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:75: error: 'INPUT_CAPTURE_PIN' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:76: error: 'OUTPUT_COMPARE_A_PIN' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:85: error: 'ENABLE_INT_INPUT_CAPTURE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp: In static member function 'static void AltSoftSerial::end()':
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:90: error: 'DISABLE_INT_COMPARE_B' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:91: error: 'DISABLE_INT_INPUT_CAPTURE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:94: error: 'DISABLE_INT_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp: In static member function 'static void AltSoftSerial::writeByte(uint8_t)':
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:110: error: 'SREG' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:111: error: 'cli' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:119: error: 'ENABLE_INT_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:120: error: 'CONFIG_MATCH_CLEAR' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:121: error: 'GET_TIMER_COUNT' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:121: error: 'SET_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp: In function 'void COMPARE_A_INTERRUPT()':
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:134: error: 'GET_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:142: error: 'CONFIG_MATCH_SET' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:144: error: 'CONFIG_MATCH_CLEAR' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:146: error: 'SET_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:156: error: 'CONFIG_MATCH_SET' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:157: error: 'SET_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:164: error: 'CONFIG_MATCH_NORMAL' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:165: error: 'DISABLE_INT_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:172: error: 'CONFIG_MATCH_CLEAR' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:173: error: 'SET_COMPARE_A' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp: In function 'void CAPTURE_INTERRUPT()':
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:197: error: 'GET_INPUT_CAPTURE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:200: error: 'CONFIG_CAPTURE_FALLING_EDGE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:203: error: 'CONFIG_CAPTURE_RISING_EDGE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:209: error: 'SET_COMPARE_B' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:210: error: 'ENABLE_INT_COMPARE_B' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:225: error: 'DISABLE_INT_COMPARE_B' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:232: error: 'CONFIG_CAPTURE_FALLING_EDGE' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp: In function 'void COMPARE_B_INTERRUPT()':
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:250: error: 'DISABLE_INT_COMPARE_B' was not declared in this scope
C:\Users\Marco\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp:251: error: 'CONFIG_CAPTURE_FALLING_EDGE' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
I don't understand why when compiling for Arduino Due the compiler includes a library (AltSoftSerial) that I've told it not to include.
I attach the library folder, if someone has any ideas on that, I'd appreciate if you could let me know ...
Marco.
QBMicroController.zip (61.1 KB)