Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 2 und 3)
- Ist die Konstante DE_BERTL_H nicht definiert, liefert diese Direktivet 1 zurück, DE_BERTL_H wird definiert (Zeile 6) und der Code wird inkludiert bis zum #endif, sonst nicht. Somit würde die Klassendeklaration nur einmal im Projekt eingebunden. Zeile 5 und 13
- Erzeugung neuer Klassen: In Zeile 8 erfolgt die Deklaration der Klasse de_Bertl abgeleitet von der Klasse ur_Bertl mittels ":" und public.
- In Zeile 11 erfolgt die Deklaration des Befehles/Methode (Prototyping) Bewege().
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.