diff --git a/AlarmClock/AlarmClock.pde b/AlarmClock/AlarmClock.pde index dfddbb12..292a1465 100644 --- a/AlarmClock/AlarmClock.pde +++ b/AlarmClock/AlarmClock.pde @@ -24,6 +24,7 @@ #include #include #include +#include #include #include diff --git a/doc/Doxyfile b/doc/Doxyfile index b578e86b..65bc0669 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -610,7 +610,7 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = ../libraries/FreetronicsLCD ../libraries/BlinkLED ../libraries/BitBangI2C ../libraries/Melody . +INPUT = ../libraries/FreetronicsLCD ../libraries/BlinkLED ../libraries/I2C ../libraries/RTC ../libraries/Melody . # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is diff --git a/doc/mainpage.dox b/doc/mainpage.dox index 58b81d22..6015fd3c 100644 --- a/doc/mainpage.dox +++ b/doc/mainpage.dox @@ -34,7 +34,6 @@ LCD shield. \li Form and Field classes to build simple property sheet UI's on LCD displays. \li \ref lcd_hello_world "Hello World" example for the Freetronics LCD shield. \li \ref lcd_form "Form" example for LCD displays. -\li \ref alarm_clock "Wind-Up Alarm Clock". \section main_BlinkLED BlinkLED Utility Library @@ -48,4 +47,27 @@ the Cylon eye effect from Battlestar Galactica. \li \ref blink_startrek "StarTrek" example for lighting a starship Enterprise model kit. +\section main_I2C I2C Utility Library + +\li I2CMaster abstract class that provides an improved API for implementing an +I2C master. The following two classes inherit from I2CMaster: +\li BitBangI2C class that implements the master side of the I2C protocol +using "bit-banging" on any arbitrary pair of pins for DATA and CLOCK. +This class supports both 7-bit and 10-bit I2C addresses. +\li WireI2C class that uses the Arduino Wire library to implement the +master side of the I2C protocol. This class only supports 7-bit addresses +and runs on predefined DATA and CLOCK pins (A4 and A5 on most boards, +D20 and D21 for Arduino Mega). + +\section main_RTC Realtime Clock Library + +\li RTC class that acts as a base for all realtime clock implementations, +including support for configuring alarms and storing clock settings. +The default implementation simulates the time and date based on the value of +millis(). +\li DS1307RTC class that talks to the DS1307 realtime clock chip via I2C. +\li \ref alarm_clock "Wind-Up Alarm Clock" example that uses the DS1307 +realtime clock and the FreetronicsLCD library to implement an alarm clock +where the internal battery is charged by hand-cranking a dynamo. + */ diff --git a/libraries/BitBangI2C/BitBangI2C.cpp b/libraries/I2C/BitBangI2C.cpp similarity index 100% rename from libraries/BitBangI2C/BitBangI2C.cpp rename to libraries/I2C/BitBangI2C.cpp diff --git a/libraries/BitBangI2C/BitBangI2C.h b/libraries/I2C/BitBangI2C.h similarity index 100% rename from libraries/BitBangI2C/BitBangI2C.h rename to libraries/I2C/BitBangI2C.h diff --git a/libraries/I2C/keywords.txt b/libraries/I2C/keywords.txt new file mode 100644 index 00000000..1a81d35d --- /dev/null +++ b/libraries/I2C/keywords.txt @@ -0,0 +1,8 @@ +BitBangI2C KEYWORD1 + +start KEYWORD2 +stop KEYWORD2 +startRead KEYWORD2 +startWrite KEYWORD2 +read KEYWORD2 +write KEYWORD2 diff --git a/libraries/BitBangI2C/DS1307RTC.cpp b/libraries/RTC/DS1307RTC.cpp similarity index 99% rename from libraries/BitBangI2C/DS1307RTC.cpp rename to libraries/RTC/DS1307RTC.cpp index d5e6b441..e59cb700 100644 --- a/libraries/BitBangI2C/DS1307RTC.cpp +++ b/libraries/RTC/DS1307RTC.cpp @@ -21,6 +21,7 @@ */ #include "DS1307RTC.h" +#include "../I2C/BitBangI2C.h" #include /** diff --git a/libraries/BitBangI2C/DS1307RTC.h b/libraries/RTC/DS1307RTC.h similarity index 98% rename from libraries/BitBangI2C/DS1307RTC.h rename to libraries/RTC/DS1307RTC.h index 767eda5c..25a2ea78 100644 --- a/libraries/BitBangI2C/DS1307RTC.h +++ b/libraries/RTC/DS1307RTC.h @@ -24,7 +24,8 @@ #define DS1307RTC_h #include "RTC.h" -#include "BitBangI2C.h" + +class BitBangI2C; class DS1307RTC : public RTC { public: diff --git a/libraries/BitBangI2C/RTC.cpp b/libraries/RTC/RTC.cpp similarity index 100% rename from libraries/BitBangI2C/RTC.cpp rename to libraries/RTC/RTC.cpp diff --git a/libraries/BitBangI2C/RTC.h b/libraries/RTC/RTC.h similarity index 100% rename from libraries/BitBangI2C/RTC.h rename to libraries/RTC/RTC.h diff --git a/libraries/BitBangI2C/keywords.txt b/libraries/RTC/keywords.txt similarity index 68% rename from libraries/BitBangI2C/keywords.txt rename to libraries/RTC/keywords.txt index d1828dbd..8c4bc60e 100644 --- a/libraries/BitBangI2C/keywords.txt +++ b/libraries/RTC/keywords.txt @@ -1,14 +1,6 @@ -BitBangI2C KEYWORD1 DS1307RTC KEYWORD1 RTC KEYWORD1 -start KEYWORD2 -stop KEYWORD2 -startRead KEYWORD2 -startWrite KEYWORD2 -read KEYWORD2 -write KEYWORD2 - isRealTime KEYWORD2 hasUpdates KEYWORD2 readTime KEYWORD2