
Functions and formatted printing of time and date for RTC8563
Dependencies: mbed
You are viewing an older revision! See the latest version
Klasse Date von RTC8563 ableiten
Das UML Diagramm zeigt die Ableitung der Klasse Date von der Basisklasse RTC8563
Klasse Date¶
Die Klasse Date erbt alle Membervariable (i2c) und Methoden (rtc_read, ...) von der Basisklasse RTC8563:
Klassendeklaration in einer Header-Datei Date.h:
#include "mbed.h" #include "const.h" #include "RTC8563.h" #ifndef DATE_H #define DATE_H class Date : public RTC8563 { private: uint8_t bcdToUint(uint8_t const nybbles); public: uint8_t GetDay(); }; #endif
- Es werden die notwendigen Header-Dateien mit den Praeprozessor-Direktiven inkludiert. (Zeile 1 bis 3)
- Ist die Konstante DATE_H nicht definiert, liefert diese Direktivet 1 zurück, DATE_H wird definiert (Zeile 6) und der Code wird inkludiert bis zum #endif in Zeile 15, sonst nicht. Somit wird die Klassendeklaration nur einmal vom Praeprozessor im Projekt eingebunden. Zeile 5 und 15
- Erzeugung neuer Klassen: In Zeile 7 erfolgt die Deklaration der Klasse Date abgeleitet von der Klasse RTC8563 mittels ":" und public.
- In Zeile 10 erfolgt die Deklaration der Methode (Prototyping) bcdToUint, privat also nur innerhalb der Klasse sichtbar.
- In Zeile 12 erfolgt die Deklaration der öffentlichen Methode (Prototyping) GetDay, public also im ganzen Programm sichtbar.
- Die Klassendeklaration wird mit } und einem Strichpunkt (;) abgeschlossen.
Die Definition der Methoden in der Klasse Date.cpp:
uint8_t Date::bcdToUint(uint8_t const nybbles) // Wandelt BCD-Wert in Integer um { uint8_t result; result = (nybbles >> 4) * 10 + (nybbles & 0x0F); return result; } uint8_t Date :: GetDay() { uint8_t s = rtc_read(DAYS); return bcdToUint(s&0x3F); }
Aufgabe¶
- Task_Date: Erweitern Sie die Date-Klasse nach folgendem UML-Diagramm um die Mehtoden GetMonth und GetYear. Überprüfen Sie mit der Abbildung Register organisation die UND-Verküpfungen, sodass nicht falsche Werte zurück gegeben werden.