Forum: Mikrocontroller und Digitale Elektronik Unverständnis RTC_calendar Library von TI


von Prof. C. (albert83)


Lesenswert?

Hallo Forum,

ich habe ein seh seltsamen Phänomen, das ich absolut nicht 
nachvollziehen kann.

Es geht um die RTC_Calendar Lib von TI.
Definiert ist folgendes
1
#define JANUARY   0x00
2
#define FEBRUARY  0x01
3
#define MARCH     0x02
4
#define APRIL     0x03
5
#define MAY       0x04
6
#define JUNE      0x05
7
#define JULY      0x06
8
#define AUGUST    0x07
9
#define SEPTEMBER 0x08
10
#define OCTOBER   0x09
11
#define NOVEMBER  0x10
12
#define DECEMBER  0x11

Aufgrund von aufgetretenen Inkonsistenzen habe ich zum schnellen Prüfen 
den folgenden Code geschrieben um die Variablen beim Debuggen 
anzuschauen.
1
setDate(2011,6,25);  
2
char test_Month1=TI_month;
3
setDate(2011,JUNE,25);
4
char test_Month2=TI_month;

Es kam folgendes heraus

test_Month1=0x05
test_Month2=0x04

Warum?

Eine weitere Unklarheit habe ich in den TI Codebeispielen entdeckt:
1
// Set Date to 4/25/05
2
//   - Day = Monday
3
//   - leapyear = no
4
//   - day = 0x25, month = 0x04 year = 0x2005
5
//-------------------------------------------------------------------------
6
  setDate( 2005, 4, 25 );
7
  if ( TI_dayOfWeek != MONDAY ){ return 19; }
8
  if ( LEAP_YEAR ){ return 20; }
9
  if ( TI_day != 0x25 ){ return 21; }
10
  if ( TI_month != APRIL ){ return 22; }
11
  if ( TI_year != 0x2005 ){ return 23; }

Ich frage mich nun allerdings wie das gehen soll?
4 steht doch für MAY? Wie kann die Prüfung 0x04==April erfolgreich sein?

Ich bin für jede Hilfe, die mich weiterbringt dankbar!
Momentan bin ich mir nicht sicher, ob ich diese Lib überhault einsetzen 
kann/soll.

Viele Grüße,
Albert83

von Karl H. (kbuchegg)


Lesenswert?

Prof. Chaos schrieb:

> Ich bin für jede Hilfe, die mich weiterbringt dankbar!

Da war sich irgendwer mit dem Rest des Teams (oder mit sich selbst) 
offenbar nicht ganz einig, ob Jannuar nun die Monatsnummer 0 oder 1 
haben soll. Beim setDate ist Jannuar offenbar der Monat 1, beim Abfragen 
der Einzelwerte offenbar 0.

Einfach mal den Code durchsuchen, ob da irgendwo beim Monat 1 umotiviert 
abgezogen oder addiert wird.

Schön und durchdacht ist das offenbar nicht, aber sowas kommt immer 
wieder mal vor. In Code der veröffentlicht werden soll, sollte das zwar 
nicht auftauchen, aber es passiert schon mal.

von Prof. C. (albert83)


Lesenswert?

Hallo,

aber das muss doch jemandem vor mir auch aufgefallen sein?
Die Bibliothek gibt es schon seit mehreren Jahren.

MfG,
ALbert83

von Bernhard M. (boregard)


Lesenswert?

Hi,

mag unschön sein, ist aber so dokumentiert:

ftp://ftp.fh-heilbronn.de/lmpt/MSP430/Real-Time-Clock.PDF

Gruß,
Bernhard

von Prof. C. (albert83)


Lesenswert?

Bernhard M. schrieb:
> Hi,
>
> mag unschön sein, ist aber so dokumentiert:
>
> ftp://ftp.fh-heilbronn.de/lmpt/MSP430/Real-Time-Clock.PDF
>
> Gruß,
> Bernhard

Was ist da bitte so dokumentiert?
Die verlinkte Datei ist nur die Beschreibung der Bibliothek.

von Karl H. (kbuchegg)


Lesenswert?

Prof. Chaos schrieb:
> Bernhard M. schrieb:
>> Hi,
>>
>> mag unschön sein, ist aber so dokumentiert:
>>
>> ftp://ftp.fh-heilbronn.de/lmpt/MSP430/Real-Time-Clock.PDF
>>
>> Gruß,
>> Bernhard
>
> Was ist da bitte so dokumentiert?

Dann sieh dir mal die Beschreibung der setDate Funktion an.
Seite 8

von Carsten G. (carry)


Lesenswert?

Unter "TI_month" (Seite 7) steht: "January == 0". Bei "setDate(...)" (S. 
8) steht: "Months should be passed with January == 1 and day starting at 
1 as well".


Carsten

von Prof. C. (albert83)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Prof. Chaos schrieb:
>> Bernhard M. schrieb:
>>> Hi,
>>>
>>> mag unschön sein, ist aber so dokumentiert:
>>>
>>> ftp://ftp.fh-heilbronn.de/lmpt/MSP430/Real-Time-Clock.PDF
>>>
>>> Gruß,
>>> Bernhard
>>
>> Was ist da bitte so dokumentiert?
>
> Dann sieh dir mal die Beschreibung der setDate Funktion an.
> Seite 8

Hallo Karl Heinz,

du hast recht - sorry für die unpassende Bemerkung.

@Carsten: Danke auch!

MfG
Albert83

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.