Advertisement
Guest User

arduino rtc example HT1382

a guest
Dec 13th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.45 KB | None | 0 0
  1. #include "WSWire.h"
  2. #define HT1382_ADDRESS 0x68
  3. byte set_second = 0;
  4. byte set_minute = 58;
  5. byte set_hour = 13;
  6. byte set_day = 1;
  7. byte set_date = 2;
  8. byte set_month = 12;
  9. byte set_year = 16;
  10.  
  11. byte read_second;
  12. byte read_minute;
  13. byte read_hour;
  14. byte read_day;
  15. byte read_date;
  16. byte read_month;
  17. byte read_year;
  18.  
  19. byte bcd_to_Dec(byte val){ return( (val/16*10) + (val%16) ); }
  20. byte dec_to_bcd(byte val){ return( (val/10*16) + (val%10) ); }
  21.  
  22. void setup() {
  23.   Serial.begin(9600);
  24.   while (!Serial);
  25.   Serial.println("Init time");
  26.   Wire.begin();
  27.   Wire.beginTransmission(HT1382_ADDRESS);
  28.   Wire.write((byte)0);
  29.   Wire.write(dec_to_bcd(set_second));
  30.   Wire.write(dec_to_bcd(set_minute));
  31.   Wire.write(dec_to_bcd(set_hour));
  32.   Wire.write(dec_to_bcd(set_day));
  33.   Wire.write(dec_to_bcd(set_date));
  34.   Wire.write(dec_to_bcd(set_month));
  35.   Wire.write(dec_to_bcd(set_year));
  36.   int result = Wire.endTransmission();
  37.   Serial.print("Done with result = ");
  38.   Serial.println(result);
  39. }
  40.  
  41. void loop() {
  42.   Wire.beginTransmission(HT1382_ADDRESS);
  43.   Wire.write((byte)0);
  44.   Wire.endTransmission();
  45.   Wire.requestFrom(HT1382_ADDRESS, 7);
  46.   read_second = bcd_to_Dec(Wire.read());
  47.   read_minute = bcd_to_Dec(Wire.read());
  48.   read_hour = bcd_to_Dec(Wire.read());
  49.   read_day = bcd_to_Dec(Wire.read());
  50.   read_date = bcd_to_Dec(Wire.read());
  51.   read_month = bcd_to_Dec(Wire.read());
  52.   read_year = bcd_to_Dec(Wire.read());
  53.   Serial.println(read_second);
  54.   delay(1000);
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement