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