initial
Dependencies: DS3231 _24LCXXX mbed
main.cpp@0:a213799a9648, 2015-11-21 (annotated)
- Committer:
- rakware
- Date:
- Sat Nov 21 09:41:03 2015 +0000
- Revision:
- 0:a213799a9648
initial
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rakware | 0:a213799a9648 | 1 | #include "mbed.h" |
rakware | 0:a213799a9648 | 2 | #include "DS3231.h" |
rakware | 0:a213799a9648 | 3 | #include "_24LCXXX.h" |
rakware | 0:a213799a9648 | 4 | |
rakware | 0:a213799a9648 | 5 | Serial pc(USBTX, USBRX); |
rakware | 0:a213799a9648 | 6 | |
rakware | 0:a213799a9648 | 7 | int hour; |
rakware | 0:a213799a9648 | 8 | int minute; |
rakware | 0:a213799a9648 | 9 | int second; |
rakware | 0:a213799a9648 | 10 | |
rakware | 0:a213799a9648 | 11 | int dayOfWeek; |
rakware | 0:a213799a9648 | 12 | int date; |
rakware | 0:a213799a9648 | 13 | int month; |
rakware | 0:a213799a9648 | 14 | int year; |
rakware | 0:a213799a9648 | 15 | int data2; |
rakware | 0:a213799a9648 | 16 | |
rakware | 0:a213799a9648 | 17 | I2C i2c(PB_9, PB_8); // sda, scl |
rakware | 0:a213799a9648 | 18 | _24LCXXX eeprom(&i2c, 0x57); |
rakware | 0:a213799a9648 | 19 | DS3231 rtc(PB_9,PB_8); |
rakware | 0:a213799a9648 | 20 | |
rakware | 0:a213799a9648 | 21 | bool EN32kHz() |
rakware | 0:a213799a9648 | 22 | {int reg=rtc.readRegister(DS3231_Control_Status); |
rakware | 0:a213799a9648 | 23 | return(reg&DS3231_bit_EN32kHz); |
rakware | 0:a213799a9648 | 24 | } |
rakware | 0:a213799a9648 | 25 | |
rakware | 0:a213799a9648 | 26 | |
rakware | 0:a213799a9648 | 27 | int main() |
rakware | 0:a213799a9648 | 28 | { |
rakware | 0:a213799a9648 | 29 | |
rakware | 0:a213799a9648 | 30 | pc.printf("rtc online\n"); |
rakware | 0:a213799a9648 | 31 | |
rakware | 0:a213799a9648 | 32 | pc.printf("\r\n\nDS3231 Library test program\r\nremi cormier 2012\r\n\n"); |
rakware | 0:a213799a9648 | 33 | |
rakware | 0:a213799a9648 | 34 | //rtc.setI2Cfrequency(400000); //hi speed support |
rakware | 0:a213799a9648 | 35 | |
rakware | 0:a213799a9648 | 36 | //rtc.eraseOSF(); |
rakware | 0:a213799a9648 | 37 | |
rakware | 0:a213799a9648 | 38 | //rtc.writeRegister(DS3231_Aging_Offset,0); // uncomment to set Aging Offset 1LSB = approx. 0.1 ppm according from datasheet = 0.05 ppm @ 21 °C from my measurments |
rakware | 0:a213799a9648 | 39 | |
rakware | 0:a213799a9648 | 40 | //rtc.convertTemperature();////////// |
rakware | 0:a213799a9648 | 41 | |
rakware | 0:a213799a9648 | 42 | int reg=rtc.readRegister(DS3231_Aging_Offset); |
rakware | 0:a213799a9648 | 43 | if (reg>127) { |
rakware | 0:a213799a9648 | 44 | reg=reg-256; |
rakware | 0:a213799a9648 | 45 | } |
rakware | 0:a213799a9648 | 46 | pc.printf("Aging offset : %i\r\n",reg); |
rakware | 0:a213799a9648 | 47 | |
rakware | 0:a213799a9648 | 48 | int regc=rtc.readRegister(DS3231_Control); |
rakware | 0:a213799a9648 | 49 | |
rakware | 0:a213799a9648 | 50 | pc.printf("DS3231_Control : %i\r\n",regc); |
rakware | 0:a213799a9648 | 51 | |
rakware | 0:a213799a9648 | 52 | |
rakware | 0:a213799a9648 | 53 | |
rakware | 0:a213799a9648 | 54 | pc.printf("EN32kHz : %i\r\n",EN32kHz()); |
rakware | 0:a213799a9648 | 55 | |
rakware | 0:a213799a9648 | 56 | pc.printf("OSF flag : %i",rtc.OSF()); |
rakware | 0:a213799a9648 | 57 | pc.printf("\r\n"); |
rakware | 0:a213799a9648 | 58 | |
rakware | 0:a213799a9648 | 59 | rtc.readDate(&date,&month,&year); |
rakware | 0:a213799a9648 | 60 | pc.printf("date : %02i-%02i-%02i",date,month,year); |
rakware | 0:a213799a9648 | 61 | pc.printf("\r\n"); |
rakware | 0:a213799a9648 | 62 | |
rakware | 0:a213799a9648 | 63 | //rtc.setTime(19,26,00); // uncomment to set time |
rakware | 0:a213799a9648 | 64 | |
rakware | 0:a213799a9648 | 65 | rtc.readTime(&hour,&minute,&second); |
rakware | 0:a213799a9648 | 66 | pc.printf("time : %02i:%02i:%02i",hour,minute,second); |
rakware | 0:a213799a9648 | 67 | pc.printf("\r\n"); |
rakware | 0:a213799a9648 | 68 | |
rakware | 0:a213799a9648 | 69 | //rtc.setDate(3,10,12,2014); // uncomment to set date6,22,12,2012 |
rakware | 0:a213799a9648 | 70 | |
rakware | 0:a213799a9648 | 71 | rtc.readDateTime(&dayOfWeek,&date,&month,&year,&hour,&minute,&second); |
rakware | 0:a213799a9648 | 72 | pc.printf("date time : %i / %02i-%02i-%02i %02i:%02i:%02i",dayOfWeek,date,month,year,hour,minute,second); |
rakware | 0:a213799a9648 | 73 | pc.printf("\r\n"); |
rakware | 0:a213799a9648 | 74 | |
rakware | 0:a213799a9648 | 75 | pc.printf("temperature :%6.2f",rtc.readTemp()); |
rakware | 0:a213799a9648 | 76 | pc.printf("\r\n"); |
rakware | 0:a213799a9648 | 77 | |
rakware | 0:a213799a9648 | 78 | // pc.printf("memory int data write!\n"); |
rakware | 0:a213799a9648 | 79 | // data2 = 100; |
rakware | 0:a213799a9648 | 80 | // eeprom.nbyte_write( 0, &data2, sizeof(int)); |
rakware | 0:a213799a9648 | 81 | // pc.printf("\nend\n"); |
rakware | 0:a213799a9648 | 82 | // |
rakware | 0:a213799a9648 | 83 | // pc.printf("memory int data read!\n"); |
rakware | 0:a213799a9648 | 84 | // eeprom.nbyte_read( 1, &data2, sizeof(uint8_t) ); |
rakware | 0:a213799a9648 | 85 | // pc.printf("int:%d sizeofint:%d",data2, sizeof(uint8_t)); |
rakware | 0:a213799a9648 | 86 | // pc.printf("\nend\n"); |
rakware | 0:a213799a9648 | 87 | |
rakware | 0:a213799a9648 | 88 | } |