RTCModuleDS1302 och LCDI2C16x02 (A0, A1, A2 inte lödas-utan en bro) (1 / 6 steg)
Steg 1: Bibliotek DS1302.h
/*
DS1302.h - Arduino bibliotek stöd för DS1302 underhållsladdning tidtagning Chip
Copyright (C) 2010 Henning Karlsen. Alla rättigheter reserverade
Du hittar den senaste versionen av biblioteket vid
http://www.henningkarlsen.com/Electronics
Detta bibliotek har gjorts enkelt gränssnitt och använda den DS1302 RTC med
Arduino.
Om du gör några ändringar eller förbättringar av koden, skulle jag uppskatta
att ni delar koden med mig så att jag kan ta med den i nästa utgåva.
Jag kan kontaktas genom http://www.henningkarlsen.com/electronics/contact.php
Detta bibliotek är fri programvara; Du kan vidaredistribuera det och/eller
ändra den enligt villkoren i den GNU Lesser allmänna offentliga
Licens som offentliggörs av Free Software Foundation; antingen
version 2.1 av licensen, eller (vid ditt alternativ) någon senare version.
Detta bibliotek distribueras i hopp om att det kommer att vara användbar,
men utan garantier; utan att ens underförstådd garanti om
SÄLJBARHET eller lämplighet för ett visst ändamål. Se GNU
Lesser General Public License för mer detaljer.
Du bör ha fått en kopia av den GNU Lesser allmänna offentliga
License tillsammans med detta bibliotek; om inte, skriv till fri programvara
Foundation, Inc., 51 Franklin St, femte våningen, Boston, MA 02110-1301 USA
*/
#ifndef DS1302_h
#define DS1302_h
#if defined(ARDUINO) & & ARDUINO > = 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#define FORMAT_SHORT 1
#define FORMAT_LONG 2
#define FORMAT_LITTLEENDIAN 1
#define FORMAT_BIGENDIAN 2
#define FORMAT_MIDDLEENDIAN 3
#define måndag 1
#define tisdag 2
#define onsdag 3
#define torsdag 4
#define fredag 5
#define lördag 6
#define söndag 7
#define TCR_D1R2K 165
#define TCR_D1R4K 166
#define TCR_D1R8K 167
#define TCR_D2R2K 169
#define TCR_D2R4K 170
#define TCR_D2R8K 171
#define TCR_OFF 92
klass tid
{
offentlig:
uint8_t timme;
uint8_t min.
uint8_t SEK;
uint8_t datum;
uint8_t mån;
uint16_t år.
uint8_t dow;
Time();
};
klass DS1302_RAM
{
offentlig:
byte cell [31].
DS1302_RAM();
};
klass DS1302
{
offentlig:
DS1302 (uint8_t ce_pin, uint8_t data_pin, uint8_t sclk_pin);
Tid getTime();
void setTime (uint8_t timme, uint8_t min, uint8_t SEK);
void setDate uint8_t datum, uint8_t mån, uint16_t år.
void setDOW(uint8_t dow);
char * getTimeStr (uint8_t format = FORMAT_LONG);
char * getDateStr (uint8_t slformat = FORMAT_LONG, uint8_t eformat = FORMAT_LITTLEENDIAN, char divider ='. ');
char * getDOWStr (uint8_t format = FORMAT_LONG);
char * getMonthStr (uint8_t format = FORMAT_LONG);
void stoppa (bool värde);
void writeProtect (bool aktivera);
void setTCR (uint8_t värde);
void skrivbuffert (DS1302_RAM r);
DS1302_RAM readBuffer();
void säcken (uint8_t addr, uint8_t värde);
uint8_t peek (uint8_t addr);
privat:
uint8_t _ce_pin;
uint8_t _data_pin;
uint8_t _sclk_pin;
uint8_t _burstArray [8].
uint8_t _readByte();
void _writeByte (uint8_t värde);
uint8_t _readRegister (uint8_t reg);
void _writeRegister (uint8_t reg, uint8_t värde);
void _burstRead();
uint8_t _decode (uint8_t värde);
uint8_t _decodeH (uint8_t värde);
uint8_t _decodeY (uint8_t värde);
uint8_t _encode (uint8_t vaule);
};
#endif