Stap 1: Bibliotheek DS1302.h
/*
DS1302.h - Arduino library ondersteuning voor de DS1302 Chip voor de tijdwaarneming van de Trickle gratis
Copyright (C) 2010 Henning Karlsen. Alle rechten voorbehouden
U vindt de nieuwste versie van de bibliotheek op
http://www.henningkarlsen.com/Electronics
Deze bibliotheek is geboekt gemakkelijk interface en gebruiken van de RTC DS1302 met
de Arduino.
Als u eventuele wijzigingen of verbeteringen aan de code, zou ik het waarderen
dat u de code met mij, deelt zodat ik in de volgende release opnemen kan.
Ik kan gecontacteerd worden via http://www.henningkarlsen.com/electronics/contact.php
Deze bibliotheek is vrije software; je kunt het herdistribueren en/of
aanpassen onder de voorwaarden van de GNU Lesser algemene openbare
Licentie zoals gepubliceerd door de Free Software Foundation; beide
versie 2.1 van de licentie, of (naar uw keuze) een latere versie.
Deze bibliotheek wordt verspreid in de hoop dat het bruikbaar,
maar zonder enige garantie; zelfs zonder de impliciete garantie van
VERKOOPBAARHEID of geschiktheid voor een bepaald doel. Zie GNU
Lesser General Public License voor meer details.
U moet hebt ontvangen een kopie van de GNU Lesser algemene openbare
License along with this library; Als dit niet het geval is, schrijven aan de Vrije Software
Foundation, Inc., 51 Franklin St, vijfde verdieping, 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 maandag 1
#define dinsdag 2
#define woensdag 3
#define donderdag 4
#define vrijdag 5
#define zaterdag 6
#define zondag 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
klasse tijd
{
publiek:
uint8_t uur;
uint8_t min;
uint8_t sec;
uint8_t datum;
uint8_t mon;
uint16_t jaar;
uint8_t dow;
Time();
};
klasse DS1302_RAM
{
publiek:
byte cel [31];
DS1302_RAM();
};
klasse DS1302
{
publiek:
DS1302 (uint8_t ce_pin, uint8_t data_pin, uint8_t sclk_pin);
Tijd getTime ();
VOID setTime (uint8_t uur uint8_t min, uint8_t sec);
VOID setDate (uint8_t datum, uint8_t ma, uint16_t jaar);
nietig setDOW(uint8_t dow);
char * getTimeStr (uint8_t formaat = FORMAT_LONG);
char * getDateStr (uint8_t slformat = FORMAT_LONG, uint8_t eformat = FORMAT_LITTLEENDIAN, char scheidingslijn ='. ');
char * getDOWStr (uint8_t formaat = FORMAT_LONG);
char * getMonthStr (uint8_t formaat = FORMAT_LONG);
VOID halt (bool waarde);
VOID writeProtect (bool inschakelen);
VOID setTCR (uint8_t waarde);
VOID writeBuffer (DS1302_RAM r);
DS1302_RAM readBuffer();
VOID zak (uint8_t addr, uint8_t waarde);
uint8_t peek (uint8_t addr);
privé:
uint8_t _ce_pin;
uint8_t _data_pin;
uint8_t _sclk_pin;
uint8_t _burstArray [8];
uint8_t _readByte();
VOID _writeByte (uint8_t waarde);
uint8_t _readRegister (uint8_t reg);
VOID _writeRegister (uint8_t reg, uint8_t waarde);
nietig _burstRead();
uint8_t _decode (uint8_t waarde);
uint8_t _decodeH (uint8_t waarde);
uint8_t _decodeY (uint8_t waarde);
uint8_t _encode (uint8_t waarde);
};
#endif