annotate packages/devs/wallclock/dallas/ds1742/current/ds1742.inl @ 94:4642a6d35749 ecos-sw-2000-06-02

Merge from eCos master repository on 2000-06-02-07:47:04-BST
author jlarmour
date Fri, 02 Jun 2000 17:35:00 +0000
parents
children e0c0827131d1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
94
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
1 //==========================================================================
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
2 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
3 // devs/wallclock/ds1742.inl
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
4 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
5 // Wallclock implementation for Dallas 1742
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
6 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
7 //==========================================================================
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
9 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
10 // -------------------------------------------
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
11 // The contents of this file are subject to the Red Hat eCos Public License
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
12 // Version 1.1 (the "License"); you may not use this file except in
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
14 // http://www.redhat.com/
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
15 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
16 // Software distributed under the License is distributed on an "AS IS"
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
18 // License for the specific language governing rights and limitations under
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
19 // the License.
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
20 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
21 // The Original Code is eCos - Embedded Configurable Operating System,
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
22 // released September 30, 1998.
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
23 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
24 // The Initial Developer of the Original Code is Red Hat.
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
25 // Portions created by Red Hat are
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
26 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
27 // All Rights Reserved.
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
28 // -------------------------------------------
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
29 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
30 //####COPYRIGHTEND####
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
31 //==========================================================================
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
32 //#####DESCRIPTIONBEGIN####
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
33 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
34 // Author(s): jskov
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
35 // Contributors: jskov
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
36 // Date: 2000-05-25
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
37 // Purpose: Wallclock driver for Dallas 1742
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
38 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
39 //####DESCRIPTIONEND####
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
40 //
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
41 //==========================================================================
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
42
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
43 #ifndef DS_BASE
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
44 # error "Need to know base of DS1742 RAM"
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
45 #endif
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
46
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
47 #include <cyg/infra/cyg_type.h> // Common type definitions and support
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
48 #include <cyg/hal/hal_io.h> // IO macros
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
49
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
50 // Offsets from DS_BASE
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
51 #define DS_SECONDS 0x7f9 // control bit!
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
52 #define DS_SECONDS_MASK 0x7f
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
53 #define DS_MINUTES 0x7fa
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
54 #define DS_HOUR 0x7fb
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
55 #define DS_DAY 0x7fc // control bits
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
56 #define DS_DAY_MASK 0x07
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
57 #define DS_DATE 0x7fd
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
58 #define DS_MONTH 0x7fe
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
59 #define DS_YEAR 0x7ff
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
60 #define DS_CENTURY 0x7f8 // control bits!
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
61 #define DS_CENTURY_MASK 0x3f
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
62
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
63 // Control bits
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
64 #define DS_SECONDS_OSC 0x80 // set to stop oscillator (power save)
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
65 #define DS_CENTURY_READ 0x40 // set during read
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
66 #define DS_CENTURY_WRITE 0x80 // set during write
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
67 #define DS_DAY_BF 0x80 // battery flag
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
68 #define DS_DAY_FT 0x40 // frequency test
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
69
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
70
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
71 // Make sure test modes are disabled and that clock is running.
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
72 static void
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
73 init_ds_hwclock(void)
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
74 {
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
75 cyg_uint8 _tmp;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
76
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
77 // Enable clock
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
78 HAL_READ_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
79 _tmp &= ~DS_SECONDS_OSC;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
80 HAL_WRITE_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
81
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
82 // clear frequency test
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
83 HAL_READ_UINT8(DS_BASE+DS_DAY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
84 _tmp &= ~DS_DAY_FT;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
85 HAL_WRITE_UINT8(DS_BASE+DS_DAY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
86 }
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
87
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
88
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
89 static void
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
90 set_ds_hwclock(cyg_uint32 year, cyg_uint32 month, cyg_uint32 mday,
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
91 cyg_uint32 hour, cyg_uint32 minute, cyg_uint32 second)
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
92 {
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
93 cyg_uint8 _tmp;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
94 // Init write operation
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
95 HAL_READ_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
96 _tmp &= ~(DS_CENTURY_WRITE|DS_CENTURY_READ);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
97 _tmp |= DS_CENTURY_WRITE;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
98 HAL_WRITE_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
99
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
100 // Entries with control bits
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
101 HAL_READ_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
102 _tmp &= ~DS_CENTURY_MASK;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
103 _tmp |= TO_BCD(year/100) & DS_CENTURY_MASK;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
104 HAL_WRITE_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
105
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
106 HAL_READ_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
107 _tmp &= ~DS_SECONDS_MASK;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
108 _tmp |= TO_BCD(second) & DS_SECONDS_MASK;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
109 HAL_WRITE_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
110
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
111 HAL_READ_UINT8(DS_BASE+DS_DAY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
112 _tmp &= ~DS_DAY_FT; // clear frequency test
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
113 HAL_WRITE_UINT8(DS_BASE+DS_DAY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
114
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
115
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
116 // Dedicated entries
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
117 HAL_WRITE_UINT8(DS_BASE+DS_YEAR, TO_BCD(year % 100));
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
118 HAL_WRITE_UINT8(DS_BASE+DS_MONTH, TO_BCD(month));
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
119 HAL_WRITE_UINT8(DS_BASE+DS_DATE, TO_BCD(mday));
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
120 HAL_WRITE_UINT8(DS_BASE+DS_HOUR, TO_BCD(hour));
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
121 HAL_WRITE_UINT8(DS_BASE+DS_MINUTES, TO_BCD(minute));
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
122
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
123 // Enable clock
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
124 HAL_READ_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
125 _tmp &= ~DS_SECONDS_OSC;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
126 HAL_WRITE_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
127
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
128 // Finish write operation
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
129 HAL_READ_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
130 _tmp &= ~(DS_CENTURY_WRITE|DS_CENTURY_READ);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
131 HAL_WRITE_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
132 }
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
133
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
134 static void
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
135 get_ds_hwclock(cyg_uint32* year, cyg_uint32* month, cyg_uint32* mday,
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
136 cyg_uint32* hour, cyg_uint32* minute, cyg_uint32* second)
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
137 {
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
138 cyg_uint8 _tmp;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
139
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
140 // Init read operation
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
141 HAL_READ_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
142 _tmp &= ~(DS_CENTURY_WRITE|DS_CENTURY_READ);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
143 _tmp |= DS_CENTURY_READ;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
144 HAL_WRITE_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
145
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
146 // Entries with control bits
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
147 HAL_READ_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
148 _tmp &= DS_CENTURY_MASK;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
149 *year = 100*TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
150
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
151 HAL_READ_UINT8(DS_BASE+DS_SECONDS, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
152 _tmp &= DS_SECONDS_MASK;
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
153 *second = TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
154
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
155 // Dedicated entries
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
156 HAL_READ_UINT8(DS_BASE+DS_YEAR, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
157 *year += TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
158 HAL_READ_UINT8(DS_BASE+DS_MONTH, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
159 *month = TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
160 HAL_READ_UINT8(DS_BASE+DS_DATE, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
161 *mday = TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
162 HAL_READ_UINT8(DS_BASE+DS_HOUR, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
163 *hour = TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
164 HAL_READ_UINT8(DS_BASE+DS_MINUTES, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
165 *minute = TO_DEC(_tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
166
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
167 // Finish read operation
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
168 HAL_READ_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
169 _tmp &= ~(DS_CENTURY_WRITE|DS_CENTURY_READ);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
170 HAL_WRITE_UINT8(DS_BASE+DS_CENTURY, _tmp);
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
171 }
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
172
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
173 //-----------------------------------------------------------------------------
4642a6d35749 Merge from eCos master repository on 2000-06-02-07:47:04-BST
jlarmour
parents:
diff changeset
174 // End of devs/wallclock/ds1742.inl