Hallo,
ich habe vor 6 Char Variablen in eine Long Variable zu packen und zwar
ganz einfach über addition der Werte. Es handelt sich dabei um die
Stellen einer Uhr. Wenn es z.B. 12:34:56 ist steht in der Long Variable
123456. Long Variable wollte ich nehemen da z.B. die Integer Variable
nur bis 32767 geht.
Meine Frage is überhaupt ob das so einfach möglich ist wie ich mir das
vorstelle:
1 | Long_Uhrzeit = (rtc.time[0] * 100000) + (rtc.time[1] * 10000)
|
2 | + (rtc.time[3] * 1000) + (rtc.time[4]* 100)
|
3 | + (rtc.time[6] * 10) + (rtc.time[7] * 1);
|
Da das irgendwie nicht funktioniert. Das ganze beruht auf die rtc.h.
Hintergrund: Ich will die Istuhrzeit mit einer Solluhrzeit vergleichen.
(z.B. Long_Uhrzeit <= Long_Soll_Uhrzeit ... )
1 | // **************************************************************
|
2 | // ******* RTC_ROUTINES HEADER FILE ********
|
3 | // **************************************************************
|
4 | #define DS1307_W 0xd0
|
5 | #define DS1307_R 0xd1
|
6 |
|
7 | #define RTC_NO_ERROR 0
|
8 | #define RTC_ERROR 1
|
9 |
|
10 |
|
11 | typedef struct
|
12 | {
|
13 | unsigned char time[9];
|
14 | unsigned char date[12];
|
15 | unsigned char day;
|
16 | unsigned char rtc_register[7];
|
17 |
|
18 |
|
19 | } RTC_DATE_TIME;
|
20 |
|
21 |
|
22 | unsigned char rtc_read(RTC_DATE_TIME *r);
|
23 | unsigned char rtc_write(RTC_DATE_TIME *r);
|