-diese Library dient zum ansteuern eines DS1307 RealTimeClock ICs
von einem externen Modul das per TWI-Bus an die CPU angeschlossen ist
(z.B. das Modul von myAVR “myTWI Echtzeituhr”)
-es kann nur ein DS1307 gleichzeitig angesteuert werden
-das externe Modul ist an den TWI-Bus angeschlossen,
aus dem Grund wird auch der TWI-Treiber
“MK3_2560_TWI.h” benoetigt
-Es gibt noch einen anderen Treiber fuer das PCF8583 RTC-IC
Funktionen :
1 2 3 4 5 | void EXT_INIT_DS1307(void); // zum initialisieren des DS1307 void EXT_DS1307_READ_UHR(void); // zum auslesen der UHR void EXT_DS1307_WRITE_UHR(void); // zum beschreiben der UHR void EXT_DS1307_START_UHR(void); // zum starten der Uhr void EXT_DS1307_STOP_UHR(void); // zum anhalten der Uhr |
Beispiel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | //----------------------------------------------------------------------------- // Title : bsp_ub023_mk3_ext_ds1307 //----------------------------------------------------------------------------- // Funktion : Externes TWI-Modul : RealTimeClock // Schaltung : myAVR MK3 + myTWI-AddOn-EchtzeitUhr //----------------------------------------------------------------------------- // Prozessor : ATMega2560 // Takt : 16 MHz // Sprache : C // Date : 20.11.2010 // Version : 1.1 // Autor : UB //----------------------------------------------------------------------------- #define F_CPU 16000000 #include <avr/io.h> #include <ub_ext_module/EXT_TWI_DS1307.h> #include <ub_mk3_2560/MK3_2560_LED.h> //----------------------------------------------------------------------------- // Hinweis : // > Quick-Jumper Port-L muss gesetzt sein // > externes TWI-Modul muss am Stecker rechts unten angeschlossen sein // > TWI-Port-Pins (D0+D1) werden benoetigt // - das Programm liest zyklisch die Uhrzeit ein und zeigt // die Sekunden als Binaerwert an den LEDs an // - bei einem Fehler wird 0x55 angezeigt //----------------------------------------------------------------------------- int main (void) { char wert=0; unsigned int p=0; MK3_INIT_LED(); // init der LEDs EXT_INIT_DS1307(); // init vom externen DS1307 while (true) { // auslesen der aktuellen uhrzeit EXT_DS1307_READ_UHR(); if(EXT_DS1307_OK==true) { // wenn alles ok // anzeigen des sekundenwertes wert=EXT_DS1307.sekunden; MK3_LED_ZAHL(wert); } else { // 0x55 wird als FEHLER angezeigt MK3_LED_ZAHL(0x55); } for(p=0;p<60000;p++) { // kleine Pause } } return 0; } |
Hier die Library zum download :