00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00043 #ifndef __m41t81s_h
00044 #define __m41t81s_h defined
00045
00046 #include "i2c.h"
00047 #include "pic_utils.h"
00048
00049
00050
00051 #define rtc_sqw_freq_32768Hz 0b00000001
00052
00053 #define rtc_sqw_freq_8192Hz 0b00000010
00054 #define rtc_sqw_freq_4096Hz 0b00000011
00055 #define rtc_sqw_freq_2048Hz 0b00000100
00056 #define rtc_sqw_freq_1024Hz 0b00000101
00057 #define rtc_sqw_freq_512Hz 0b00000110
00058 #define rtc_sqw_freq_256Hz 0b00000111
00059 #define rtc_sqw_freq_128Hz 0b00001000
00060 #define rtc_sqw_freq_64Hz 0b00001001
00061 #define rtc_sqw_freq_32Hz 0b00001010
00062 #define rtc_sqw_freq_16Hz 0b00001011
00063 #define rtc_sqw_freq_8Hz 0b00001100
00064 #define rtc_sqw_freq_4Hz 0b00001101
00065 #define rtc_sqw_freq_2Hz 0b00001110
00066 #define rtc_sqw_freq_1Hz 0b00001111
00067
00068
00070 #define m41t81s_device_addr 0xD0
00071
00073 #define m41t81s_part_seconds_reg 0x00
00074
00075 #define m41t81s_seconds_reg 0x01
00076
00077 #define m41t81s_minutes_reg 0x02
00078
00079 #define m41t81s_hours_reg 0x03
00080
00081 #define m41t81s_dow_reg 0x04
00082
00083 #define m41t81s_date_reg 0x05
00084
00085 #define m41t81s_month_reg 0x06
00086
00087 #define m41t81s_year_reg 0x07
00088
00089 #define m41t81s_calibration_reg 0x08
00090
00091 #define m41t81s_watchdog_reg 0x09
00092
00093 #define m41t81s_alarm_month_reg 0x0A
00094
00095 #define m41t81s_alarm_date_reg 0x0B
00096
00097 #define m41t81s_alarm_hour_reg 0x0C
00098
00099 #define m41t81s_alarm_min_reg 0x0D
00100
00101 #define m41t81s_alarm_seconds_reg 0x0E
00102
00103 #define m41t81s_flags_reg 0x0F
00104
00105 #define m41t81s_reserved1_reg 0x10
00106
00107 #define m41t81s_reserved2_reg 0x11
00108
00109 #define m41t81s_reserved3_reg 0x12
00110
00111 #define m41t81s_sqw_reg 0x13
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00151 uns8 rtc_get_minutes();
00152
00153
00164 uns8 rtc_get_hours();
00165
00166
00175 uns8 rtc_get_seconds();
00176
00184 uns8 rtc_get_dow();
00185
00186
00194 uns8 rtc_get_date();
00195
00196
00204 uns8 rtc_get_month();
00205
00206
00214 uns8 rtc_get_year();
00215
00216
00222 void rtc_set_year(uns8 year);
00223
00232 void rtc_set_minutes(uns8 minutes);
00233
00234
00243 void rtc_set_day(uns8 day);
00252 void rtc_set_date(uns8 date);
00253
00261 void rtc_set_seconds(uns8 seconds);
00262
00269 void rtc_set_hours(uns8 hours);
00270
00276 void rtc_set_month(uns8 month);
00277
00284 uns8 rtc_set_config(uns8 config);
00285
00291 void rtc_stop_clock();
00292
00293
00304 void rtc_start_clock();
00305
00330 void rtc_set_sqw_freq(uns8 freq);
00331
00339 void rtc_start_sqw_output();
00340
00347 void rtc_stop_sqw_output();
00348
00349
00355 void rtc_setup_io();
00356 #define rtc_setup() rtc_setup_io()
00357 uns8 rtc_get_register(uns8 reg);
00358 void rtc_set_register(uns8 reg, uns8 data);
00359
00360 #endif