Forum: Mikrocontroller und Digitale Elektronik PIC XC8 eigene Datentypen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ingo S. (schicki)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammmen,

ich migriere momentan meine Projekte zum XC8. Im C18 konnte ich einen 
eigenen Daten typ wie folgt deklarieren. Hat mir jemand ein Tipp wie das 
nun im XC8 funktioniert. Es erscheint die Fehlermeldung:

error: (196) struct/union required

Danke und Gruß
Ingo

date_time_t dt; 

//Zuweisung
dt.Stunden  = 09;      // 23 Stunden (11pm im 24-Stunden Modus)
dt.Minuten   = 23;      // 59 Minuten 
dt.Sekunden = 00;     // 50 Sekunden
dt.Tag       = 12;      // 31
dt.Monat     = 05;      // December
dt.Jahr      = 13;      // 2006
dt.Wochentag = 1;       // 1 = Sonntag, 2 = Montag, usw. 

//Abfrage
dt.Stunden = DS1337_Read_Stunden(&dt);
dt.Minuten = DS1337_Read_Minuten(&dt);
dt.Sekunden =DS1337_Read_Sekunden(&dt);
    
dt.Tag = DS1337_Read_Tag(&dt);
dt.Monat = DS1337_Read_Monat(&dt);
dt.Jahr = DS1337_Read_Jahr(&dt);
dt.Wochentag = DS1337_Read_Wochentag(&dt);

strcpy(chr_Wochentag, Wochentag_Namen[dt.Wochentag]); 

sprintf(str_Temp, "%s %02u.%02u.%02u %02u:%02u:%02u\n\r",chr_Wochentag, dt.Tag, dt.Monat, dt.Jahr, dt.Stunden, dt.Minuten, dt.Sekunden);
puts1USART(str_Temp);
puts1USART("\r\n");
Warten_MS(1000);

von Schorsch X. (bastelschorsch)


Bewertung
0 lesenswert
nicht lesenswert
Ingo S. schrieb:
> date_time_t dt;

Vielleicht gibt es diesen Typ beim XC8 nicht von Haus aus. Also
typedef struct {
 bla bla1;
 bla bla2;
 bla bla3;
 bla bla4;
 bla bla5;
 bla bla6;

} date_time_t;

In welcher Zeile meckert der Compiler ?

von nicht“Gast“ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Die Kommentare bei der Initialisierung sind lustig....

Hast du eine.h eingebunden?

von nicht“Gast“ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Damig

time.h sollte das natürlich werden.

von Meister E. (edson)


Bewertung
0 lesenswert
nicht lesenswert
So?
#include <ctype.h>

typedef struct
{
    uint8_t Stunden;
    uint8_t Minuten;
    uint8_t Sekunden;
    uint8_t Tag;
    uint8_t Monat;
    uint8_t Jahr;
    uint8_t Wochentag;
}date_time_t;

date_time_t dt; 

void Init(void)
{
    //Zuweisung
    dt.Stunden  = 09;      // 23 Stunden (11pm im 24-Stunden Modus)
    dt.Minuten   = 23;      // 59 Minuten 
    dt.Sekunden = 00;     // 50 Sekunden
    dt.Tag       = 12;      // 31
    dt.Monat     = 05;      // December
    dt.Jahr      = 13;      // 2006
    dt.Wochentag = 1;       // 1 = Sonntag, 2 = Montag, usw. 
}

Edit: Schorsch hatte es schon geschrieben, hab ich übersehen...

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.