24-TWI_PCF8583-Library (ATMega)

-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 :

UB_EXT_TWI_PCF8583_v105


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert