eBoard 🐉  ①⑧⑨
Written for SIA 2017/2018
eBoard.h
Go to the documentation of this file.
1 
2 //EagleoutIce 2018
3 //IF YOU SEE THIS THIS IS THE UNPROCESSED FILE! GO TO 'SOURCE CODE' IN THE DOCS
8  #ifndef EBOARD_HEADER_GUARD
9  #define EBOARD_HEADER_GUARD
10 
11 //=====================================================================================================================================================
12 // GCC pragmas
13 //=====================================================================================================================================================
14 
15  #pragma GCC diagnostic push
16  #pragma GCC diagnostic ignored "-Wall"
17  #pragma GCC diagnostic ignored "-Wextra"
18 
19 //=====================================================================================================================================================
20 // PreprocessorControl
21 //=====================================================================================================================================================
22 
24 
25 //=====================================================================================================================================================
26 // Version
27 //=====================================================================================================================================================
28 
30  #define EBOARD_VERSION "3.2.7d"
31  #define EBOARD_VERSION_NBR 349
33 
34  DEBUG_MSG("If you do not want any preprocessing information from this eBoard-Header set PREPROCESS_DEBUG to 0");
35 
36  //i am a guard... leave me alone :D
37  #ifdef DOC
38  DEBUG_MSG("Documentation macro SET => Full doc features enabled");
39  #define ARDUINO 200
40 
43  #define EBOARD_I2C 0x1
44 
48  #define EBOARD_LCD 0x1
49 
52  #define EBOARD_SHIFT_REGISTER 0x1
53 
56  #define EBOARD_BLUETOOTH 0x1
57 
60  #define REPT_TASK
61 
64  #define __AVR_ATmega2560__
65 
68  #define __AVR_ATmega328P__
69 
72  #define EBOARD_NEO 0x1
73 
78  #define HIGHSPEED
79  #define __AVR__
81  #endif
82  #if defined(ARDUINO) //general platform-check [No tab]
83  #include <avr/pgmspace.h>
84 
85 //=====================================================================================================================================================
86 // Namespace
87 //=====================================================================================================================================================
92  namespace eagle_impl {}
93 
94  using namespace eagle_impl;
95 
96 //=====================================================================================================================================================
97 // Helpers
98 //=====================================================================================================================================================
99 
100  //-------------------------------------------------------------------------------------------------------------------------------------------------
101  // main method
102  //-------------------------------------------------------------------------------------------------------------------------------------------------
103 
107  #define main eVirtual_main //main has a different meaning^^
108 
109  //-------------------------------------------------------------------------------------------------------------------------------------------------
110  // stop flag
111  //-------------------------------------------------------------------------------------------------------------------------------------------------
112 
118  static bool STOP = false;
119 
120  //-------------------------------------------------------------------------------------------------------------------------------------------------
121  // ignore_size
122  //-------------------------------------------------------------------------------------------------------------------------------------------------
123 
127  #ifdef IGNORE_SIZE
128  DEBUG_MSG("You defined IGNORE_SIZE: byte will be used");
129  typedef byte optVAL_t;
130  #else
131  DEBUG_MSG("You did not define IGNORE_SIZE: int will be used");
132  typedef int optVAL_t;
133  #endif
134 
135 //=====================================================================================================================================================
136 // Macro Definitions
137 //=====================================================================================================================================================
138 
139  //-------------------------------------------------------------------------------------------------------------------------------------------------
140  // guesspath
141  //-------------------------------------------------------------------------------------------------------------------------------------------------
142 
143  #ifndef EBOARD_GUESSPATH
144  DEBUG_MSG("You are using Guesspath! Necessary libraries for eBoard will be included automatically");
148  #define EBOARD_GUESSPATH 0x1
149  #else
150  DEBUG_MSG("You are not using Guesspath! Necessary libraries for eBoard have to be included manually");
151  #endif
152 
153  //-------------------------------------------------------------------------------------------------------------------------------------------------
154  // arduino version
155  //-------------------------------------------------------------------------------------------------------------------------------------------------
156 
157  #if ARDUINO >= 100 //this could be only Arduino.h but this snippet is portable :D
158  #include "Arduino.h"
159  #else
160  #include <wiring.h>
161  #endif
162 
163  //-------------------------------------------------------------------------------------------------------------------------------------------------
164  // software based hardware check
165  //-------------------------------------------------------------------------------------------------------------------------------------------------
166 
167  #if not ( defined(__AVR_ATmega2560__) || defined(__AVR_ATmega328P__))
168  #error "This library was build for ARDUINO UNO R3 A and ARDUINO MEGA 2560!"
169  #endif
170 
171  //-------------------------------------------------------------------------------------------------------------------------------------------------
172  // pin maximum
173  //-------------------------------------------------------------------------------------------------------------------------------------------------
174 
175  #if defined(__AVR_ATmega2560__)
176  DEBUG_MSG("Building for Arduino Mega with ATmega2560");
180  #define PIN_MAX 0x32 //53 pins to address - 4 !!53 is SS
181  #else
182  DEBUG_MSG("Building for Arduino Uno or Nano with ATmega328P");
183  #define PIN_MAX 0xA // 13 Pins to address - 4 !!10 is SS
184  #endif
185 
186  //-------------------------------------------------------------------------------------------------------------------------------------------------
187  // avr io & interrupts
188  //-------------------------------------------------------------------------------------------------------------------------------------------------
189 
190  #include <avr/io.h>
191  #include <avr/interrupt.h>
192 
193  //-------------------------------------------------------------------------------------------------------------------------------------------------
194  // I²C
195  //-------------------------------------------------------------------------------------------------------------------------------------------------
196 
197  #ifndef EBOARD_I2C
198 
201  #define EBOARD_I2C 0x0 //disabled by default
202  #endif
203 
204  #if EBOARD_I2C > 0x0 && EBOARD_GUESSPATH > 0x0
205  DEBUG_MSG("You enabled I²C features");
206  #ifndef twi_h
207  #define twi_h
208  #ifndef TwoWire_h //because it will be included ._.
209  //#define ATMEGA8
210  #include "source/eagle_Twi.h"
211  #endif
212  #endif
213 
214  #ifndef TwoWire_h
215  #include "source/eagle_TwoWire.h"
216  #endif
217  #else
218  DEBUG_MSG("You disabled I²C");
219  #endif
220 
221  //-------------------------------------------------------------------------------------------------------------------------------------------------
222  // SPI
223  //-------------------------------------------------------------------------------------------------------------------------------------------------
224 
228  #ifndef EBOARD_USE_SPI
229  #define EBOARD_USE_SPI 0x1
230  #endif
231 
232  #ifdef EBOARD_HELPCAR
233  DEBUG_MSG("You switched to helpcar and disabled SPI");
234  #define EBOARD_USE_SPI 0x0
235  #endif
236 
237  #if EBOARD_USE_SPI > 0x0
238  DEBUG_MSG("You enabled SPI");
239  #ifndef _SPI_H_INCLUDED
240  #define _SPI_H_INCLUDED
242  #include "source/eagle_SPI.h"
243  #endif
244  #else
245  DEBUG_MSG("You disabled SPI");
246  #endif
247 
251  #ifndef EBOARD_SPI_SERVO_MAX
252  #define EBOARD_SPI_SERVO_MAX 2
253  #endif
254 
255  #if PREPROCESS_DEBUG > 0x0
256  #pragma message("Set amount of used Servos to " VALUE(EBOARD_SPI_SERVO_MAX))
257  #endif
258 
259  //-------------------------------------------------------------------------------------------------------------------------------------------------
260  // LCD
261  //-------------------------------------------------------------------------------------------------------------------------------------------------
262 
263  #if (EBOARD_I2C > 0x0) && (EBOARD_LCD > 0x0)
264  #include <avr/pgmspace.h>
265  DEBUG_MSG("You enabled LCD");
266  #endif
267 
268  //-------------------------------------------------------------------------------------------------------------------------------------------------
269  // debug
270  //-------------------------------------------------------------------------------------------------------------------------------------------------
271 
275  #ifndef EBOARD_DEBUG_MODE
276  #define EBOARD_DEBUG_MODE 0x1
277  #endif
278 
279  #if EBOARD_DEBUG_MODE > 0x0
280  MACRO_MSG(EBOARD_DEBUG_MODE,"Serial feedback will be send to Computer");
281  #else
282  MACRO_MSG(EBOARD_DEBUG_MODE, "No Serial feedback!");
283  #endif
284 
288  #ifndef EBOARD_DEBUG_SPEED
289  #define EBOARD_DEBUG_SPEED 9600
290  #endif
291 
292  #if PREPROCESS_DEBUG > 0x0
293  #pragma message("Set Debugging speed to " VALUE(EBOARD_DEBUG_SPEED))
294  #endif
295 
296  //-------------------------------------------------------------------------------------------------------------------------------------------------
297  // eboard nano
298  //-------------------------------------------------------------------------------------------------------------------------------------------------
299 
303  #ifndef EBOARD_NANO
304  #define EBOARD_NANO 0x0
305  #endif
306 
307  //-------------------------------------------------------------------------------------------------------------------------------------------------
308  // helpcar
309  //-------------------------------------------------------------------------------------------------------------------------------------------------
310 
311  #if (defined(EBOARD_HELPCAR) || defined(DOC))
312  #ifndef EBOARD_HELPCAR_STEER
313 
316  #define EBOARD_HELPCAR_STEER 12
317  #endif
318 
319  #ifndef EBOARD_HELPCAR_MAIN
320 
323  #define EBOARD_HELPCAR_MAIN 13
324  #endif
325 
326  MACRO_MSG(EBOARD_NANO,"Using Arduino Helpcar environment [e.g. remove AX12Servo]");
327 
328  #if PREPROCESS_DEBUG > 0x1
329  #pragma message("Using " VALUE(EBOARD_HELPCAR_STEER) " as data pin for STEERING MOTOR")
330  #pragma message("Using " VALUE(EBOARD_HELPCAR_MAIN) " as data pin for MAIN (Driving) MOTOR")
331  #endif
332 
333  #else
334  MACRO_MSG(EBOARD_NANO,"Using Arduino UNO/MEGA environment");
335  #endif
336 
337  //-------------------------------------------------------------------------------------------------------------------------------------------------
338  // pin check
339  //-------------------------------------------------------------------------------------------------------------------------------------------------
340 
344  #ifndef EBOARD_CHECK_PINS
345  #define EBOARD_CHECK_PINS 0x1
346  #endif
347 
348  #if EBOARD_CHECK_PINS > 0x0
349  MACRO_MSG(EBOARD_CHECK_PINS,"Check for Pins enabled");
350  #else
351  MACRO_MSG(EBOARD_CHECK_PINS,"Check for Pins disabled");
352  #endif
353 
354  //-------------------------------------------------------------------------------------------------------------------------------------------------
355  // shiftregister
356  //-------------------------------------------------------------------------------------------------------------------------------------------------
357 
358  #ifndef EBOARD_SHIFT_REGISTER
359 
362  #define EBOARD_SHIFT_REGISTER 0x0
363  #endif
364 
365  #if EBOARD_SHIFT_REGISTER > 0x0
366  MACRO_MSG(EBOARD_SHIFT_REGISTER,"Shiftregister enabled");
367  #else
368  MACRO_MSG(EBOARD_SHIFT_REGISTER,"Shiftregister disabled");
369  #endif
370 
371  //-------------------------------------------------------------------------------------------------------------------------------------------------
372  // pwm check
373  //-------------------------------------------------------------------------------------------------------------------------------------------------
374 
378  #ifndef EBOARD_CHECK_PINS_PWM
379  #define EBOARD_CHECK_PINS_PWM 0x1
380  #endif
381 
382  #if EBOARD_CHECK_PINS_PWM > 0x0
383  MACRO_MSG(EBOARD_CHECK_PINS_PWM,"Check for PWM-Pins enabled");
384  #else
385  MACRO_MSG(EBOARD_CHECK_PINS_PWM,"Check for PWM-Pins disabled");
386  #endif
387 
388  //-------------------------------------------------------------------------------------------------------------------------------------------------
389  // utility
390  //-------------------------------------------------------------------------------------------------------------------------------------------------
391 
395  #ifndef EBOARD_USE_UTILITY
396  #define EBOARD_USE_UTILITY 0x1
397  #endif
398 
399  #if EBOARD_USE_UTILITY > 0x0
400  MACRO_MSG(EBOARD_USE_UTILITY,"Utility features will be implemented");
401  #else
402  MACRO_MSG(EBOARD_USE_UTILITY,"Utility features will not be implemented");
403  #endif
404 
405  //-------------------------------------------------------------------------------------------------------------------------------------------------
406  // copy n' paste
407  //-------------------------------------------------------------------------------------------------------------------------------------------------
408 
412  #define EBOARD_COPY_AND_PASTE 0x1
413 
414  //-------------------------------------------------------------------------------------------------------------------------------------------------
415  // pwm speed
416  //-------------------------------------------------------------------------------------------------------------------------------------------------
417 
421  #ifndef EBOARD_PWM_SPE
422  #define EBOARD_PWM_SPE 1
423  #endif
424 
425  #if PREPROCESS_DEBUG > 0x0
426  #pragma message("Set PWM interval to " VALUE(EBOARD_PWM_SPE) "s")
427  #endif
428 
429  //-------------------------------------------------------------------------------------------------------------------------------------------------
430  // bluetooth
431  //-------------------------------------------------------------------------------------------------------------------------------------------------
432 
433  #ifndef EBOARD_BLUETOOTH
434 
437  #define EBOARD_BLUETOOTH 0x0
438  #endif
439 
440  #if EBOARD_BLUETOOTH > 0x0
441  MACRO_MSG(EBOARD_BLUETOOTH,"Bluetooth controls enabled");
442  #else
443  MACRO_MSG(EBOARD_BLUETOOTH,"Bluetooth controls disabled");
444  #endif
445 
446  //-------------------------------------------------------------------------------------------------------------------------------------------------
447  // clamp
448  //-------------------------------------------------------------------------------------------------------------------------------------------------
449 
453  #ifndef EBOARD_CLAMP
454  #define EBOARD_CLAMP 0x1
455  #endif
456 
457  #if EBOARD_CLAMP > 0x0
458  MACRO_MSG(EBOARD_CLAMP,"Motor Range is set to [0;1023]");
459  #else
460  MACRO_MSG(EBOARD_CLAMP,"Motor Range is set to [-300;300]");
461  #endif
462 
463  //-------------------------------------------------------------------------------------------------------------------------------------------------
464  // neo
465  //-------------------------------------------------------------------------------------------------------------------------------------------------
466 
467  #ifndef EBOARD_NEO
468 
471  #define EBOARD_NEO 0x0
472  #endif
473 
474  #if EBOARD_NEO > 0x0
475  MACRO_MSG(EBOARD_NEO,"Adafruit Neo-Pixel support enabled");
476  #else
477  MACRO_MSG(EBOARD_NEO,"Adafruit Neo-Pixel support disabled");
478  #endif
479 
480  //-------------------------------------------------------------------------------------------------------------------------------------------------
481  // reset
482  //-------------------------------------------------------------------------------------------------------------------------------------------------
483 
487  #ifndef EBOARD_USE_RESET
488  #define EBOARD_USE_RESET 0x1
489  #endif
490 
491  #if EBOARD_USE_RESET > 0x0
492  #include <avr/wdt.h>
493  MACRO_MSG(EBOARD_USE_RESET,"Software-Reset is available" );
494  #else
495  MACRO_MSG(EBOARD_USE_RESET,"Software-Reset is not available" );
496  #endif
497 
498 //=====================================================================================================================================================
499 // Pin Macro
500 //=====================================================================================================================================================
501 
502  //-------------------------------------------------------------------------------------------------------------------------------------------------
503  // bluetooth
504  //-------------------------------------------------------------------------------------------------------------------------------------------------
505 
509  #ifndef PIN_BLUETOOTH_STATE
510  #if defined(__AVR_ATmega2560__)
511  #define PIN_BLUETOOTH_STATE 0x13 // 19
512  #else
513  #define PIN_BLUETOOTH_STATE 0x2
514  #endif
515  #endif
516 
520  #ifndef PIN_BLUETOOTH_RX
521  #if defined(__AVR_ATmega2560__)
522  #define PIN_BLUETOOTH_RX 0x13 // 19
523  #else
524  #define PIN_BLUETOOTH_RX 0x2
525  #endif
526  #endif
527 
531  #ifndef PIN_BLUETOOTH_TX
532  #if defined(__AVR_ATmega2560__)
533  #define PIN_BLUETOOTH_TX 0x12 // 18
534  #else
535  #define PIN_BLUETOOTH_TX 0x3
536  #endif
537  #endif
538 
539  //-------------------------------------------------------------------------------------------------------------------------------------------------
540  // motor
541  //-------------------------------------------------------------------------------------------------------------------------------------------------
542 
546  #ifndef PIN_MOTOR_DIR
547  #define PIN_MOTOR_DIR 0x4
548  #endif
549 
553  #ifndef PIN_MOTOR_SPE
554  #define PIN_MOTOR_SPE 0x5
555  #endif
556 
557  //-------------------------------------------------------------------------------------------------------------------------------------------------
558  // shiftregister
559  //-------------------------------------------------------------------------------------------------------------------------------------------------
560 
564  #ifndef PIN_SHIFT_CLK
565  #define PIN_SHIFT_CLK 0x6
566  #endif
567 
570  #ifndef PIN_SHIFT_DAT
571  #define PIN_SHIFT_DAT 0x7
572  #endif
573 
576  #ifndef PIN_SHIFT_LAT
577  #define PIN_SHIFT_LAT 0x8
578  #endif
579 
580 //=====================================================================================================================================================
581 // Modules
582 //=====================================================================================================================================================
583 
584  //-------------------------------------------------------------------------------------------------------------------------------------------------
585  // bluetooth
586  //-------------------------------------------------------------------------------------------------------------------------------------------------
587 
588  #if (EBOARD_BLUETOOTH > 0x0) && defined(__AVR_ATmega328P__)
589  #if EBOARD_GUESSPATH > 0x0
590  #ifndef SoftwareSerial_h
591  //again to resolve including errors we'll include the SoftwareSerial cpp file
592  #define SoftwareSerial_h
594  #endif
595  #endif
596 
602  #endif
603 
604 
605 
606  #if EBOARD_BLUETOOTH > 0x0
607  #include "source/eagle_Bluetooth.h"
608  #endif
609 
610  #if EBOARD_BLUETOOTH > 0x0
611  #include "source/eagle_RB14Scan.h"
612  #endif
613  //-------------------------------------------------------------------------------------------------------------------------------------------------
614  // sine and gamma8
615  //-------------------------------------------------------------------------------------------------------------------------------------------------
616 
617  #include "source/eagle_Comfort.h"
618 
619  //-------------------------------------------------------------------------------------------------------------------------------------------------
620  // servo
621  //-------------------------------------------------------------------------------------------------------------------------------------------------
622 
623  #if (defined(EBOARD_HELPCAR) || defined(DOC))
624  //offer more functions
625  #if EBOARD_GUESSPATH > 0x0
626  #include "source/eagle_Servo.h"
628  #endif
629  #endif
630 
631  //-------------------------------------------------------------------------------------------------------------------------------------------------
632  // _assert
633  //-------------------------------------------------------------------------------------------------------------------------------------------------
634 
635  #if EBOARD_DEBUG_MODE > 0x0
636 
639  #define __ASSERT_USE_STDERR
640  #include "source/eagle_Assert.h"
641  #endif
642 
643  //-------------------------------------------------------------------------------------------------------------------------------------------------
644  // check
645  //-------------------------------------------------------------------------------------------------------------------------------------------------
646 
647  /* NOTE this is DEPRECATED */
648  #include "source/eagle_Checks.h"
649 
650  //-------------------------------------------------------------------------------------------------------------------------------------------------
651  // shiftregister
652  //-------------------------------------------------------------------------------------------------------------------------------------------------
653 
654  #if EBOARD_SHIFT_REGISTER > 0x0
655  #include "source/eagle_ShiftExt.h"
656  #endif
657 
658  //-------------------------------------------------------------------------------------------------------------------------------------------------
659  // pin control
660  //-------------------------------------------------------------------------------------------------------------------------------------------------
661 
662  #include "source/eagle_PinCtrl.h"
663 
664  //-------------------------------------------------------------------------------------------------------------------------------------------------
665  // Soccerboard&co module
666  //-------------------------------------------------------------------------------------------------------------------------------------------------
667 
668  #if EBOARD_USE_SPI > 0x0 && (EBOARD_NANO == 0x0)
669  #include "source/eagle_ServoCds55.h"
670  #endif
671 
672  #if EBOARD_COPY_AND_PASTE > 0x0 && EBOARD_NANO == 0
673  #include "source/eagle_SoccerBoard.h"
674  #include "source/eagle_I2CInOut.h"
675  #ifndef EBOARD_HELPCAR
676  #include "source/eagle_AX12Servo.h"
678  #endif
679  #endif
680 
681  //-------------------------------------------------------------------------------------------------------------------------------------------------
682  // LCD
683  //-------------------------------------------------------------------------------------------------------------------------------------------------
684 
685  #if EBOARD_I2C > 0x0
686  #include "source/eagle_I2C.h"
687  //Beginof LCD configuration
688  #if EBOARD_LCD > 0x0
689  #include "source/eagle_LCD.h"
690  #endif
691  #endif
692 
693  //-------------------------------------------------------------------------------------------------------------------------------------------------
694  // NEO
695  //-------------------------------------------------------------------------------------------------------------------------------------------------
696 
697  #if EBOARD_NEO > 0x0
698  #include "source/eagle_NeoPixel.h"
699  #endif
700 
701  //-------------------------------------------------------------------------------------------------------------------------------------------------
702  // rept task & setup
703  //-------------------------------------------------------------------------------------------------------------------------------------------------
704 
705  #ifdef REPT_TASK
706  extern void rept_task(void);
707  // DEBUG_MSG("You defined REPT_TASK: you have to define rept_task(void)!");
708  #else
709  DEBUG_MSG("You did not define REPT_TASK: rept_task(void) will not have any effect");
710  #endif
711 
712  #if EBOARD_COPY_AND_PASTE > 0x0
713  #include "source/eagle_ReptTask.h"
714  #include "source/eagle_Setup.h"
716  void loop(void);
718  void loop(void){
719  //shall be empty
720  }
722  #endif
723 
724  //-------------------------------------------------------------------------------------------------------------------------------------------------
725  // helpcar
726  //-------------------------------------------------------------------------------------------------------------------------------------------------
727 
728  #if defined(EBOARD_HELPCAR) || defined(DOC)
729  #include "source/eagle_HelpMot.h"
730  #endif
731 
732  #else
733  #error This library is build for arduino-devices and should be used only in the Arduino IDE or with a similar linking process
734  #endif
735 
736 //=====================================================================================================================================================
737 // GCC pragmas
738 //=====================================================================================================================================================
739 
740  #pragma GCC diagnostic pop
741 
742 #endif
Servo steerMotor
Definition: eBoard.h:627
this file contains sine8 and gamma8
#define EBOARD_CHECK_PINS
Definition: eBoard.h:345
SoftwareSerial _serial(0x13, 0x12)
this is the recomenned-to-use _serial object for bluetooth communcation :D
this file contains the I2CInOut class
this file contains cool stuff... this file contains cool stuff... this file contains cool stuff...
this file contains the SoccerBoard class
#define EBOARD_BLUETOOTH
Definition: eBoard.h:56
this file contains the ServoCds55 class
this file contains cool stuff... it controls pins
this file contains the Servo class
this file contains the SPI class
#define EBOARD_USE_UTILITY
Definition: eBoard.h:396
this file contains cool stuff to access the bluetooth interface
this namespace contains all the don&#39;t use manually classes ;)
this file contains the assert wrapper for EBOARD_DEBUG_MODE
#define PIN_BLUETOOTH_RX
Definition: eBoard.h:522
this file contains the NeoPixel class
this file contains the DynamixelBoard class
#define EBOARD_CLAMP
Definition: eBoard.h:454
this file contains cool stuff to access the I²C interface
static bool STOP
Definition: eBoard.h:118
this file contains the helper to acces the motor on the main car
#define EBOARD_NANO
Definition: eBoard.h:304
this file contains the AX12Servo class
#define EBOARD_CHECK_PINS_PWM
Definition: eBoard.h:379
#define EBOARD_NEO
Definition: eBoard.h:72
this file contains the Twi class
#define EBOARD_SHIFT_REGISTER
Definition: eBoard.h:52
#define PIN_BLUETOOTH_TX
Definition: eBoard.h:533
this file contains the SoftwareSerial class
this file contains cool stuff never seen by the Arduino :/
this file contains the setup method
this file contains the LCD class
#define EBOARD_USE_RESET
Definition: eBoard.h:488
int optVAL_t
Definition: eBoard.h:132
#define EBOARD_DEBUG_MODE
Definition: eBoard.h:276
Servo mainMotor
Definition: eBoard.h:627
this file contains the RB14Scan class
this file contains the cool shift-EXTension
this file contains the TwoWire class
this file contains various checkers like checkIdx
[NANO] The standard Arduino Servo Class
Definition: eagle_Servo.h:83
[328p] This is used to avoid path resolving issues and defines the common known Arduino SoftwareSeria...