HIMBED_3AHELI / Mbed 2 deprecated rtc_func

Dependencies:   mbed

You are viewing an older revision! See the latest version

Klasse Date von RTC8563 ableiten

Table of Contents

  1. Klasse Date
  2. Aufgabe

Inhalt

Das UML Diagramm zeigt die Ableitung der Klasse Date von der Basisklasse RTC8563

/media/uploads/bulmecisco/uml_date.jpg

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
  1. Es werden die notwendigen Header-Dateien mit den Praeprozessor-Direktiven inkludiert. (Zeile 2 und 3)
  2. 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
  3. Erzeugung neuer Klassen: In Zeile 8 erfolgt die Deklaration der Klasse de_Bertl abgeleitet von der Klasse ur_Bertl mittels ":" und public.
  4. 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.

/media/uploads/bulmecisco/uml_date_aufgabe.jpg


All wikipages