-diese Library dient zum ansteuern eines PCF8583 RealTimeClock ICs
von einem externen Modul das per TWI-Bus an die CPU angeschlossen ist
-es kann nur ein PCF8583 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 DS1307 RTC-IC
Funktionen :
1 2 3 4 5 | void EXT_INIT_PCF8583(void); // init vom PCF8583 (und start der Uhr) void EXT_PCF8583_READ_UHR(void); // auslesen der UHR void EXT_PCF8583_WRITE_UHR(void);// beschreiben der UHR void EXT_PCF8583_START_UHR(void);// starten der UHR void EXT_PCF8583_STOP_UHR(void); // stoppen 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_ub035_mk3_ext_pcf8583 //----------------------------------------------------------------------------- // Funktion : Externes TWI-Modul : RealTimeClock // Schaltung : myAVR MK3 + PCF8583 //----------------------------------------------------------------------------- // 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_PCF8583.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_PCF8583(); // init vom externen PCF8583 while (true) { // auslesen der aktuellen uhrzeit EXT_PCF8583_READ_UHR(); if(EXT_PCF8583_OK==true) { // wenn alles ok // anzeigen des sekundenwertes wert=EXT_PCF8583.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 :